我正在创建一个首次使用我的用户帐户登录的应用程序。此用户帐户可以是我自己的应用程序数据库中的Windows或自我管理帐户。
现在我想在访问我的应用程序的任何业务对象之前授权登录用户。对象与数据库表进行映射,因此最终我想先授权用户,是否将数据提供给用户。
登录后,我将用户凭据全局存储为UserCredential
类的对象。但我不希望在创建它时将此凭据传递给每个对象。
有没有办法检查/到达我自动创建的每个业务对象的应用程序上下文(包括我全局存储的UserCredential
对象)?
我想在C#中实现这一目标。代码示例非常感谢。
答案 0 :(得分:0)
您应该查看PrincipalPermissionAttribute类,这是MSDN文档:
PrincipalPermissionAttribute class MSDN documentation
当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
}