0

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

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

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

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

我想在 C# 中实现这一点。非常感谢代码示例。

4

1 回答 1

0

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

PrincipalPermissionAttribute 类 MSDN 文档

当 Thread.CurrentPrincipal 与安全断言不匹配时,PrincipalPermissionAttribute 会引发 SecurityException。

例子:

用户名为 GDroid:

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

用户属于管理员角色:

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

用户已通过身份验证:

[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
public void YourBusinessMethod()
{
    // Do something
}
于 2013-06-17T05:35:02.663 回答