我正在使用Membership.create用户功能,然后发生以下错误,
所需的防伪表单字段"__RequestVerificationToken"不存在
我怎样才能解决这个问题?
我不知道我缺少什么,但我在Web.config文件中添加了配置文件属性,但无法访问配置文件.代码中的项目或创建新的配置文件.
该?通配符表示未经授权的用户,同时*代表了所有用户,认证和未.我的书显示了以下URL授权示例:
<authorization>
<deny users="?" />
<allow users="dan,matthew" />
<deny users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
但是上面的代码不具有与以下相同的效果:
<authorization>
<allow users="dan,matthew" />
<deny users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
或者作者是否还包括 <deny users="?" />规则?
asp.net authentication authorization forms-authentication asp.net-membership
我已经阅读了我能找到的关于这个主题的所有内容,包括MSDN文章和SO帖子,但我仍然非常迷茫和困惑.
请回答以下内容(如果可能,请简要回答):
什么是SimpleMembership/SimpleMembershipProvider(WebMatrix.WebData)以及它们负责的是什么?
什么是WebSecurity(WebMatrix.WebData)?
什么是Membership(System.Web.Security)类?
为什么MVC4会创建一个UserProfile表和一个webpages_Membership表?它们是什么,有什么区别?MVC4创建的UserProfile类是什么?
什么是UsersContext类?
所有这些如何协同工作以进行用户身份验证?
这些问题然后导致下一个问题:
假设我有一个包含用户的现有数据库(ID,用户名,密码).我正在创建一个新的MVC4应用程序并使用表单身份验证.用户密码以加密形式(不是bcrypt)存储在数据库中.
我需要做些什么才能使它与MVC4一起使用?
我是否必须创建自定义MembershipProvider?
据我所知,WebSecurity是一个静态类(Module),它与MembershipProvider交互.MembershipProvider是一个解释特定函数如何工作的类,例如ValidateUser,CreateUser,ChangePassword.
为了解决我的问题,我假设我需要创建一个自定义MembershipProvider并告诉WebSecurity使用我的新MembershipProvider.
我已经在这个问题上获得了赏金,并打算将其授予安迪·布朗,以获得出色的答案.
forms-authentication asp.net-membership membership-provider asp.net-mvc-4 simplemembership
评估方法签名时,需要在更改密码时知道旧密码.
membershipUser.ChangePassword(userWrapper.OldPassword, userWrapper.Password)
Run Code Online (Sandbox Code Playgroud)
有没有办法在不知道旧密码的情况下更改密码.
我试图避免使用角色提供者和成员资格提供者,因为在我看来它过于笨拙,因此我正在尝试制作我自己的"版本",它不那么笨拙,更易于管理/灵活.现在是我的问题..角色提供者有替代方案吗?(我知道我可以做自定义角色提供者,会员提供者等)
通过更易于管理/灵活,我的意思是我只能使用Roles静态类而不是直接实现到与数据库上下文交互的服务层,而是我必须使用具有自己的数据库上下文的Roles静态类等,表名也很糟糕..
提前致谢.
asp.net authentication asp.net-mvc authorization asp.net-membership
我有一个使用Web API的ASP.NET MVC 4项目.在控制器上,我已使用[Authorize]属性将类设置为需要授权.对于身份验证我使用ASP.NET成员资格提供程序并将我的Web.Config设置为使用"表单"身份验证.这是我被困的地方:
一切都工作得很好,直到我完成测试API的步骤,我想用[Authorize]属性保护控制器,这样我就可以开始对我的Membership Provider中的用户进行身份验证.所以我启动Fiddler并进行相同的调用,添加Authorization:Basic属性以及来自我的会员提供者的用户名:密码,如下所示:

我得到的响应是未经授权的401,在"Auth"下,我得到"没有WWW-Authenticate Header".然后我意识到API正在寻找SHA1编码密钥.所以我从搜索中启动一个SHA1生成器并获取我的用户名的密码:password并更新我的Request Header,如下所示:

这也不起作用,我得到相同的结果.此外,我显然需要某种"共享密钥"与服务器一起使用来解码我的用户名/密码.
所以我的问题:
提前致谢!
asp.net-mvc forms-authentication asp.net-membership fiddler asp.net-web-api
我正在构建自己的会员系统,我想要与MS会员提供商无关.我查看了互联网和StackOverflow,但我所能找到的只是建立在MS会员提供商之上的会员提供商.
无论如何,我现在几乎所有东西都挂了,但我想使用自定义的Authorize属性来利用我的会员基础设施.我在网站上查看了这个帖子,我正在尝试做类似的事情,但我不确定我需要的是什么.到目前为止,这些是我得到的课程:
SessionManager:
public static class SessionManager : ISessionManager
{
public static void RegisterSession(string key, object obj)
{
System.Web.HttpContext.Current.Session[key] = obj;
}
public static void FreeSession(string key)
{
System.Web.HttpContext.Current.Session[key] = null;
}
public static bool CheckSession(string key)
{
if (System.Web.HttpContext.Current.Session[key] != null)
return true;
else
return false;
}
public static object ReturnSessionObject(string key)
{
if (CheckSession(key))
return System.Web.HttpContext.Current.Session[key];
else
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
SharweAuthorizeAttribute: (我真的不知道,如果这确实是我应该做的事)
public class SharweAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext) …Run Code Online (Sandbox Code Playgroud) 这里有一些关于这个问题的线索,但是大多数都已经过时了,其中的参考链接更加过时了.
我有这个网站,我需要连接到一个外部的SQL服务器(mssql)与它自己的表结构,使用默认的asp.net成员资格提供程序结构不是一个选项.表格布局非常简单,使用方式看起来像这样(它叫做个人)
Individuals
- UserGuid (uniqueidentifier/guid, unique)
- Name (varchar)
- Password (varchar)
- HasAccess (tinyint/ 1 or 0)
- DateTime (datetime)
- Log (xml)
Run Code Online (Sandbox Code Playgroud)
所需的功能只是记录某人,其余的没有必要:)
我遵循了一些指南,但其中大多数已经过时且非常复杂.不幸的是,msdn示例遵循这种模式,文档不是很好.
因此,如果有人得到一些资源显示如何或愿意发布代码示例或类似的东西,我会很感激.
谢谢!
编辑:这个问题已经过时了
在我问这个时,身份框架是一个移动目标.作者改变了很多东西,他们将几件事分开,使事情变得更容易.
看看github上的Asp.NET Identity Sample项目.
我正在创建一个需要用户管理的小应用程序.不允许注册,而是有超级用户将创建和修改登录信息.
我正在使用新的ASP.NET身份会员系统,当然,创建用户和添加角色非常简单直观.
现在,我的问题:如何使用生成的AccountController类使用的AuthenticationIdentityManager类获取用户列表?我找不到从我的控制器访问用户列表的方法.
(顺便说一句,新名称"身份"对某些人来说可能听起来很棒,但搜索却很痛苦.)
编辑:如果我尝试这样做
ApplicationDbContext UsersContext = new ApplicationDbContext();
UsersContext.Users.ToList(); // Exception
Run Code Online (Sandbox Code Playgroud)
我得到一个例外Invalid column name 'Discriminator'.ApplicationDbContext的定义由新的应用程序向导自动生成:
using Microsoft.AspNet.Identity.EntityFramework;
namespace Cobranzas.Models
{
public class ApplicationUser : User
{
}
public class ApplicationDbContext : IdentityDbContextWithCustomUser<ApplicationUser>
{
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的猜测是,Discriminator列告诉分开ApplicationUser的User.但是,它在我的数据库中不存在(由应用程序自动创建).