如何将当前上下文传递给对象c#

本文关键字:对象 上下文 | 更新日期: 2023-09-27 18:18:44

我正在创建一个应用程序,我第一次登录我的用户帐户。此用户帐户可以是windows或我自己的应用程序数据库中的自我管理帐户。

现在我想在访问应用程序的任何业务对象之前授权登录的用户。对象映射到数据库表,所以最终我想先授权用户,无论是否将数据返回给用户。

登录后,我将用户凭证全局存储为UserCredential类的对象。但是我不想在创建对象的时候给每个对象传递这个凭据。

是否有任何方法可以自动检查/访问我正在进一步创建的每个业务对象的应用程序上下文(包括全局存储的UserCredential对象)?

我想在c#中实现这个。代码示例非常感谢。

如何将当前上下文传递给对象c#

你应该看看PrincipalPermissionAttribute类,这是MSDN文档:

PrincipalPermissionAttribute类MSDN文档

PrincipalPermissionAttribute抛出SecurityException当线程。当前委托人不匹配安全断言。

例子:

用户名是GDroid:

[PrincipalPermission(SecurityAction.Demand, Name = "GDroid")]
public void YourBusinessMethod()
{
    // Do something
}

用户属于Admin角色:

[PrincipalPermission(SecurityAction.Demand, Role = "Admin")]
public void YourBusinessMethod()
{
    // Do something
}

User is authenticated:

[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
public void YourBusinessMethod()
{
    // Do something
}