Tag: 表单 身份validation

Mvc,授权反弹授权用户

我试图将MVC 5网页的一部分限制为某个Active目录组的用户,但[Authorize]属性(在控制器上)阻止登录用户。 我的登录页面代码如下所示: public class AccountController: Controller { [AllowAnonymous] public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = returnUrl; return View(); } // POST: /Account/Login [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model, string returnUrl) { if (ModelState.IsValid) { ActiveDirectoryHelper ad = new ActiveDirectoryHelper(); if (Membership.ValidateUser(model.UserName, model.Password)) { if (ad.CheckGroupMembership(model.UserName)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > […]

Membership.ValidateUser()的目的是什么

我一直在学习MembershipProvider类,我认为Membership.ValidateUser()方法应该用于记录用户。 但是,我刚刚了解到有一个FormsAuthentication.Authenticate() 。 Membership中ValidateUser()的目的是什么?

自定义授权(权限)ASP.NET MVC

在我的应用程序中,角色具有多个权限。 我希望用户能够访问依赖于权限的操作,而不是角色。 所以假设: 管理员有perm1,perm2,perm3, SuperAdmin拥有管理员拥有的所有权限+ perm4和perm5。 此外,还有一些小家伙也有perm1,perm3,perm6,perm7。 我想做以下事情:我想让那些假设perm3或perm4的人可以访问。 这两个权限来自两个不同的角色。 但是除了perm3 Admin有perm1和perm2之外,这个动作也可以由具有perm3的小家伙访问(不一定是admin或superadmin)。 所以你明白我的意思吧? 我想在ASP.NET MVC 4中实现这一点。所以我想我需要创建自己的AuthorizeAttribute ,我自己的IIdentity并在global.asax中编写一些方法。 ASP.NET中还有一个成员资格我是否需要触摸它? 我不知道如何把所有的东西放在一起。 谁能帮我吗?

FormsAuthentication Microst.AspNet.Identity.Owin.SignInManager.to之间的区别

ASP.NET MVC的默认项目模板附带了一个名为Microst.AspNet.Identity.Owin.SignInManager的类。 此类用于validation用户 我不明白为什么我应该使用SignInManager而不是在ASP.NET MVC项目中使用简单的FormsAuthentication。 SignInManager有什么好处? 它是否根据FormsAuthentication以不同的方式进行身份validation? 它比FormsAuthentication更安全吗? 除了身份validation之外,我还可以使用SignInManager做什么? SignInManager和下面的代码之间有什么关系? SignInManager是否使用下面设置的设置? app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString(“/Account/Login”), Provider = new CookieAuthenticationProvider { // Enables the application to validate the security stamp when the user logs in. // This is a security feature which is used when you change a password or […]

为什么我的表单身份validation票证到期如此之快?

我在ASP.NET应用程序中使用表单身份validation。 我将FormsAuthenticationTicket配置为在1年后到期,但它实际上在1小时后到期。 我无法弄清楚为什么。 以下是登录过程中涉及的所有代码: public static bool Login(int id) { try { string securityToken = UserHelper.AuthenticateUser(id); DateTime expiryDate = DateTime.Now.AddYears(1); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, id.ToString(), DateTime.Now, expiryDate, true, securityToken, FormsAuthentication.FormsCookiePath); string encryptedTicket = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); cookie.Expires = expiryDate; HttpContext.Current.Response.Cookies.Add(cookie); return true; } catch { return false; } } […]

ASP.NET:权限/身份validation体系结构

我正在考虑在我的ASP.NET应用程序中构建一个具有以下要求的身份validation 。 用户只有一个角色(即Admin,SalesManager,Sales,….) 角色具有一组CRUD访问现有对象子集的权限。 即“Sales对对象类型”产品具有CREAD,READ,WRITE权限“但不是DELETE” 不知怎的,我喜欢在具有inheritance的层次结构中的权限,因此我对于管理员不需要指定所有可用对象。 系统必须能够快速回答“用户X是否有权对Y进行对象Z”的问题 所有数据库管理(MSSQL),在C#/ ASP.NET中实现 我想获得有关这些要求的反馈意见吗? 任何想法如何使用ASP.NET框架(尽可能)实现这一点? (但是,我也有兴趣知道如果没有会员资格可以实现这一目标)

关闭门后的Swagger-UI中的ServiceStack API文档

我希望只有在我们的网络应用程序上对用户进行身份validation(表单身份validation)时才允许访问swagger-ui和元数据,但我希望一直允许API访问(API有一些公共方法,有些需要基本身份validation)。 所以我做的是为API添加了这个路由前缀: public override RouteAttribute[] GetRouteAttributes(Type requestType) { var routes = base.GetRouteAttributes(requestType); routes.Each(x => x.Path = “/API” + x.Path); return routes; } 和: ServiceRoutes = new Dictionary { { typeof(AuthenticateService), new[] { “/api/auth”, “/api/auth/{provider}” } }, } 这也是在web配置中: 事情是,当我去/api/ now时工作正常,但是当我尝试调用某些方法时,我被重定向到我的login路线。 有没有办法像我开始那样解决这个问题,或者有更好的方法来保护文档?

在SSO身份validation后设置FormsAuthentication

我的ASP.NET MVC 4应用程序受SSO(OAM)保护,并在IIS上运行ISAPI筛选器。 收到对我的应用程序的请求后,它将被ISAPIfilter拦截并重定向到SSO。 用户必须在SSO登录,然后返回我的应用程序。 经过身份validation的用户的用户名(通过SSO)与我在HTTP请求标头中的应用程序共享。 Request.Headers[“username”] 我想要实现的是 – 在SSO身份validation之后,在我的应用程序中为username = Request.Headers[“username”]设置FormsAuthentication 。 这样,SSO对我的应用程序保持透明,并且HttpContext对象中提供了用户身份,此外,我(开发人员)可以有效地为特定角色使用Authorize属性。 要实现这一点 – 我连接到Session_Start() ,读取Request.Headers[“username”] ,设置FormsAuthentication cookie。 我为我的应用程序获得了这个SSO用户Forms-Authenticated。 但我的问题是当我注销( FormsAuthentication.Signout )时,我将其重定向到应用程序内的另一个页面,这会触发一个新的Session(我发现会发生Session_Start触发) 我做了正确的事 – 在SSO之后的FormsAuthentication吗? 如果没有,为什么不然后如何让我的应用程序知道SSO认证用户?

ASP.NET – 如果角色授权失败,则重定向到错误页面

我正在使用MVC 3与表单身份validation。 在我的控制器或方法上,我正在执行以下操作: [Authorize (Roles = “developer”)] 在这种情况下,我想检查用户是否已登录,如果没有,请将其返回登录页面。 但是,如果该用户的“IsInRole”检查返回false,我希望他们转到另一个类似“未授权”的视图。 完成这样的事情的最佳方法是什么? 我希望避免创建一个新的Authorization属性,所以我不必重构整个应用程序中的每个Authorize属性,但如果这是必需的,我将走这条路。

Microsoft ASP.NET标识 – 具有相同名称的多个用户

我正在尝试一些非常奇特的东西我相信并且我遇到了一些问题,我希望可以在StackOverflow上的用户帮助下解决。 故事 我正在编写和申请,需要认证和注册。 我选择使用Microsoft.AspNet.Identity 。 我过去没有经常使用它,所以不要在这个决定上评判我。 上面提到的框架包含一个users表,它包含所有注册用户。 我已经创建了一个示例图片来展示应用程序的工作方式。 该应用程序包含3个不同的组件: 后端(WebAPI)。 客户(直接使用WebAPI)。 最终用户(使用移动应用程序 – iOS)。 所以,我确实有一个客户可以注册的后端。 每个成员有一个唯一用户,所以这里没问题。 客户是这里的公司,最终用户是公司的客户。 您可能已经看到了问题, User 1很可能是Customer 1 ,也是Customer 2 。 现在,客户可以邀请会员使用移动应用程序。 当客户这样做时,最终用户确实会收到一封电子邮件,其中包含自己激活的链接。 现在,只要您的用户是唯一的,这一切都正常,但我确实拥有一个Customer 1和Customer 2 。 两个客户都可以邀请同一个用户,用户需要注册2次,每个Customer 。 问题 在Microsoft.AspNet.Identity框架中,用户应该是唯一的,根据我的情况,我无法管理。 这个问题 是否可以向IdentityUser添加额外的参数以确保用户是唯一的? 我已经做了什么 创建一个inheritance自IdentityUser的自定义类,其中包含一个应用程序ID: public class AppServerUser : IdentityUser { #region Properties /// /// Gets or sets the id of the […]