- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试在 ASP.NET MVC2 Web 应用程序中实现一些自定义安全性。
我正在尝试做一些非常简单的事情,如下面的代码所示,但出于某种原因,如果我使用 [Authorize(Roles="Admins")]
我的 Controller 操作之一的属性,请检查 Context.User.IsInRole("Admins")
或 Page.User.IsInRole("Admins")
它总是假的。User.Identity.Name
也很奇怪也是空白。
请参阅下面的代码,我在 cookie 中使用 FormsAuthenticationTicket,然后我将其用于 Application_AuthenticateRequest
我的 Golabl.asax 中的事件句柄使用 GenericPrincipal
设置 Context.User目的。
我的登录代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(string username, string password)
{
//this would obviously do a check against the supplied username and password
if (true)
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now,
DateTime.Now.AddMinutes(15), false, "Admins|Users|Members");
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
this.Response.Cookies.Add(cookie);
string url = FormsAuthentication.GetRedirectUrl(username, false);
Response.Redirect(url);
}
return View();
}
void MvcApplication_AuthenticateRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
var cookie = context.Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie != null)
{
// Get the authentication ticket
// and rebuild the principal & identity
FormsAuthenticationTicket authTicket =
FormsAuthentication.Decrypt(cookie.Value);
string[] roles = authTicket.UserData.Split(new Char[] { '|' });
GenericIdentity userIdentity = new GenericIdentity(authTicket.Name);
GenericPrincipal userPrincipal =
new GenericPrincipal(userIdentity, roles);
context.User = userPrincipal;
}
最佳答案
检查您是否将新的 userPrincipal 分配给 global.asax 中 OnPostAuthenticate 请求中的 HttpContext 和当前线程:
HttpContext.Current.User = userPrincipal;
Thread.CurrentPrincipal = userPrincipal;
关于asp.net-mvc - 在 MVC2 中使用 FormsAuthenticationTicket cookie 自定义 IIdentity 和 IPrincipal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3945907/
扩展方法在Microsoft.AspNet.Identity .那么有什么区别呢?这两个什么时候会返回不同的值? var idName = User.Identity.Name; var idGetN
所以我对云中的容器还比较陌生。 我已经使用 Azure 容器实例(示例: https://xpirit.com/2017/11/12/containers-as-a-service-in-azure/
我为我的 MVC 项目开发了一个简单的 IIdentity 和 IPrincipal,我想覆盖 User 和 User。 Identity 以正确的类型返回值 这是我的自定义身份: public cl
我想在自定义 FormsAuthentication 场景中利用 IIdentity.AuthenticationType 属性来设置我自己的值。使用现成的 FormsAuthentication,与
在我的 ASP 项目中,我使用的是 ASP.NET Identity 2.2.1。在许多地方,我必须获得当前(登录)用户的电子邮件。现在我发现那个用户使用这个: var user = await Us
我正在尝试使用 VS2015 MVC Controller ,特别是 User.Identity 上的 GetUserID 我已经看到许多与此相关的类似问题,其中声明要添加对 Microsoft.As
我正在编写自己的实现 IIdentity 的自定义身份类。我不需要更改默认方法 IsAuthenticated 但是现在我想知道默认的 IIdentity 如何确定它应该返回 true 还是 fals
因为 IPrincipal 具有 Identity 属性,在我的 User 类上实现这两个接口(interface)是否很好? 最佳答案 通常,用户和用户交互的安全上下文是不同的东西,因此如果以通用方
在我的 MVC 项目中,我正在为 Controller 构建单元测试以返回 View 。 这个controller的action结果构建了一个viewmodel,这个viewmodel的constru
我正在为 asp.net web api 2 构建我自己的基于 token 的身份验证,我对 user 类有疑问。 目前我的 user 类实现了 IPrincipal 和 IIdentity,但我不知
我正在尝试在 MVC5 应用程序中实现简单的基于角色的身份验证 + 授权,但我在尝试理解身份框架中涉及的所有部分时感到有些头疼 我正在阅读一些教程和指南,但我仍然没有一个清晰的想法。 特别是:IIde
我正在向现有的 MVC 应用程序添加一些 Web API 服务。我有一个用于我的 MVC Controller 的模型联编程序,用于获取存储在 CustomIdentity 中的用户对象。我正在尝试为
通过 WIF (Windows Identity Foundation) 4.5,Microsoft 创建了 WindowsPrincipal 类,它是 ClaimsPrincipal 的类型.当然,
我正在尝试从网络服务中存储有关用户的一整车信息。由于这是有关当前经过身份验证的用户的信息,我认为将这些信息存储在自定义 IIdentity 实现中是有意义的。 定制MagicMembershipPro
我需要做一些相当简单的事情:在我的 ASP.NET MVC 应用程序中,我想设置一个自定义的 IIdentity/IPrincipal。哪个更容易/更合适。我想扩展默认值,以便可以调用 User.Id
我已经根据定义有效身份及其权限的网站定义了自定义 IPrincipal 和自定义 IIdentity。这两个类都用于 Windows 窗体应用程序中使用的程序集。 问题是,当在我的程序集类之上使用声明
我坚持执行自定义 iprincpal 和 iidentity 对象。我现在花了一天时间搜索如何实现这些权利并使用更多信息扩展它。 我想使用全名或其他自定义变量扩展信息 @Context.User.Id
那么,IIdentity 和 IPrincipal 而不是某些 IIdentityMergedWithPrincipal 存在的目的是什么?什么时候在同一个类中实现两者还不够? 此外,为了理解目的,我
我创建了一个 ExtendedId 类,它扩展了 GenericIdentity。 (这存储 ID 和名称) 在 httpmodule 中,我将这个扩展 ID 存储在 Current.User 中,如
我通过 EF 4.3 在我的 ASP.NET MVC 应用程序中使用自定义 IIdentity 和 IPrincipal如上所述here (并遵循已接受答案的解决方案)。另外,我有一个自定义的 Rol
我是一名优秀的程序员,十分优秀!