我是asp.net和mvc的新手,所以我有点失落。
我设法使用此Tutorial在我的应用程序中使用OpenID登录。
但我不确定是否只设置Session [“Admin”] = true是正确的路径,到目前为止我的代码是这样的:
switch (openid.Response.Status)
{
case AuthenticationStatus.Authenticated:
if (openid.Response.ClaimedIdentifier.ToString() == Settings.Default.AdminClaimedIdentifier)
Session["Admin"] = true;
FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false);
break;
...
}
我正在尝试编写的应用程序现在只需要一个管理员,我发现在设置中只有这个管理员的OpenID非常容易。
基本上我想要做的是在设置中有一个Admin的OpenID,它们基于此身份验证保护整个文件夹,因此其中的每个操作及其子文件夹都需要管理员权限,例如:〜/ Admin / whatever / edit / 1需要身份验证。
哪种最简单,最干净的方法可以进行此类身份验证?
答案 0 :(得分:1)
OpenID为您提供身份验证(您是谁?),其中限制访问“文件夹”或管理员控制器是授权(您可以做什么?)。
一个简单的解决方案,可以在将来(根据您的需要)为您服务,是使用RoleProvider,这将允许您使用授权属性,如格里格所示。
答案 1 :(得分:0)
我不知道OpenId,但通常您会将以下内容放在控制器类的顶部以锁定整个文件夹,或者在ActionResult中锁定该操作;
[Authorize(Roles="admin")]
希望这有帮助。