我的问题是,在使用asp.net mvc时,是否可以构建客户成员资格和角色提供者(覆盖asp.net提供者)?
我猜这是可能的,但没有看到任何有关它的信息.
它会以与asp.net相同的方式完成吗?只需将web.config更改为指向新提供程序,然后提供覆盖方法?
我发现很多文章讨论改变成员资格和角色提供者的数据源,但我不喜欢asp.net使用的表,所以我通常使用自己的表结构.
如果你有任何文章或链接谈论这将是伟大的.
我试图通过单击Project下的ASP.net配置为ASP .net 2.0成员资格提供程序设置SQL表.
我完全卸载了SQL 2005 Express并安装了SQL 2008 Express.
好像它无法连接到数据库.
有没有人知道如何解决这个问题所以我可以使用2008代替?
asp.net sql-server-2008-express membership-provider sql-server-2008
我正在考虑使用ASP.NET成员资格提供程序通过一种登录方法来使用几种不同的Web应用程序/工具.
要求
用户登录my.domain.com并查看他们有权使用的应用/工具列表.用户选择他们想要使用的工具并单击该链接.当工具打开时,它能够识别出他们当前已登录以及他们要识别应用程序的任何唯一权限.
我知道每个应用程序可以简单地指向相同的后端成员资格提供程序数据库,但是每个应用程序是否需要登录,或者它是否能够识别用户是否已经登录?
asp.net security asp.net-mvc asp.net-membership membership-provider
我正在为我的.net应用程序实现自定义成员资格提供程序.我已经设置了最少数量的字符和非字母数字字符的配置,但它似乎无论如何都要通过密码,即使它们违反了规则.
OnValidatingPassword是一种虚方法.Microsoft的示例不会覆盖该方法.
这个问题解决了同样的问题,但作者放弃了对他的问题的答案,并简单地覆盖了这个功能.这个答案表明,人们不必重写函数来使其工作.
基本功能没有做任何事情吗?当我重写OnValidatePassword,并简单地调用基类时,我的函数被命中,但它永远不会拒绝我太简单的密码.
代码示例(使用自定义CreateUser函数)
protected override void OnValidatingPassword(ValidatePasswordEventArgs e)
{
base.OnValidatingPassword(e);
}
//
// MembershipProvider.CreateUser
//
public MembershipUser CreateUser(string username, string password, string globalIdentifier, string firstName, string lastName,
string birthDate, object providerUserKey, out MembershipCreateStatus status)
{
ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true);
OnValidatingPassword(args);
if (args.Cancel)
{
status = MembershipCreateStatus.InvalidPassword;
return null;
}
Run Code Online (Sandbox Code Playgroud) .net asp.net-membership membership-provider custom-membershipprovider
我已覆盖成员资格方法以创建自定义成员资格.
在帐户模型中,我覆盖了该方法CreateUser:
public override MembershipUser CreateUser(string username, string password,
string email, string passwordQuestion, string passwordAnswer,
bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(
username, password, true);
OnValidatingPassword(args);
if (args.Cancel)
{
status = MembershipCreateStatus.InvalidPassword;
return null;
}
if (RequiresUniqueEmail && GetUserNameByEmail(email) != "")
{
status = MembershipCreateStatus.DuplicateEmail;
return null;
}
MembershipUser u = GetUser(username, false);
if (u == null)
{
UserRepository _user = new UserRepository();
// Here I call my new method which has …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc membership-provider asp.net-mvc-3 asp.net-mvc-2
我创建了一堆插入脚本,以便将新用户添加到aspnet_Membership和aspnet_User表中.我不能认证,说它找不到我的用户.
有没有人试图通过T-SQL插入创建新的成员资格用户?我必须这样做,因为我们在C#/ ASP.NET中创建用户代码目前不起作用.
嗨,我在启用自定义成员资格和角色提供程序时出现了一些问
在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
System.InvalidOperationException:找不到默认成员资格提供程序.
它指向我的mvc3.ninject kernel.Inject(Membership.Provider)
我在app_start中的MVC3.Ninject:
private static void RegisterServices(IKernel kernel)
{
kernel.Inject(Membership.Provider);
kernel.Inject(Roles.Provider);
kernel.Bind<IUnitOfWork>().To<EFContext>().InRequestScope();
kernel.Bind<IUzytkownicyRepository>().To<UzytkownicyRepository>().InRequestScope();
}
Run Code Online (Sandbox Code Playgroud)
我的角色提供者:
public class DziennikRoleProvider : RoleProvider
{
[Inject]
private IUzytkownicyRepository repository { get; set;}
Run Code Online (Sandbox Code Playgroud)
我的会员提供者:
public class DziennikMembershipProvider : MembershipProvider
{
[Inject]
private IUzytkownicyRepository repository { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的WebConfig文件:
<membership defaultProvider="DziennikMembershipProvider">
<providers>
<clear/>
<add name="DziennikMembershipProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear/>
</providers>
</profile>
<roleManager defaultProvider="DziennikRoleProvider" enabled="true" cacheRolesInCookie="true">
<providers>
<clear />
<add name="DziennikRoleProvider" type="Dziennik_MVC.Helpers.DziennikMembershipProvider, Dziennik_MVC" connectionStringName="EFDbContext" />
</providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud) 我使用razor引擎创建了asp.net mvc4应用程序,我是这项技术的新手,并尝试找出一种在管理员登录后向管理员显示注册用户列表的方法.成员资格使用system.web.providers.任何人都可以告诉 - 首先如何为用户创建单独的角色,管理员使用实体框架其次如何获取并显示具有不同角色的所有注册用户的列表给管理员.
提前致谢.问候
我有一个ASP.NET MVC 4 Web应用程序.在本地运行,它工作正常,但在Web主机(使用共享主机)上,登录用户经常被重定向回主页注销.在大多数情况下,用户仅在执行少量操作后才会注销.
网络主机建议我的应用程序可能耗尽了太多的内存,但我用一个程序来分析内存使用情况,我确认它没有使用过多的内存 - 实际上应用程序似乎使用了分配的一小部分网络主机上的内存.
以下是使用的登录方法:
public static Boolean Login(string Username, string Password, bool persistCookie = false)
{
bool success = Membership.ValidateUser(Username, Password);
if (success)
{
FormsAuthentication.SetAuthCookie(Username, persistCookie);
}
return success;
}
Run Code Online (Sandbox Code Playgroud)
在我的Web主机中,表单身份验证超时设置为60分钟,因此这不应该是一个问题,对吧?
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="60" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
并且我的会话状态超时值也设置为60分钟:
<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="60">
Run Code Online (Sandbox Code Playgroud)
基于这里的答案,我也添加了这一行,似乎没有解决问题:
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps"></machineKey>
Run Code Online (Sandbox Code Playgroud)
对问题可能是什么以及我可以做些什么来解决问题的任何想法?
asp.net-mvc asp.net-membership shared-hosting membership-provider asp.net-mvc-4
我们有多个站点运行一个sitecore实例.其中一个站点要求通过外部后端系统管理用户和角色,因此,我们为每个站点配置了自定义成员资格和角色提供程序以及域.但是,由于某种原因,角色提供程序上的切换器似乎并未受到尊重.如果我以sitecore用户身份登录CMS,它仍会调用我的自定义角色提供程序来尝试为此用户获取角色,尽管角色提供程序是针对其他域配置的?
当实际用户登录到站点时,角色提供程序正常工作,但当CMS用户正在编辑页面时,它不应被命中.
在我们的Web.config中配置:
<roleManager defaultProvider="sitecore" enabled="true" cookieRequireSSL="false" createPersistentCookie="false" cookieSlidingExpiration="true" cacheRolesInCookie="false">
<providers>
<clear />
<add name="sitecore" type="Sitecore.Security.SitecoreRoleProvider, Sitecore.Kernel" realProviderName="switcher" raiseEvents="true" />
<add name="sql" type="System.Web.Security.SqlRoleProvider" connectionStringName="core" applicationName="sitecore" />
<add name="MyProvider" type="MyApp.Web.Infrastructure.Security.RoleProviders.MyProvider, MyApp.Web" applicationName="sitecore" />
<add name="switcher" type="Sitecore.Security.SwitchingRoleProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/roleManager" />
</providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)
加上我们修补的sitecore配置:
<switchingProviders>
<roleManager>
<provider providerName="MyProvider" storeFullNames="false" wildcard="%" domains="mydomain" patch:after="provider[@providerName='sql']"/>
</roleManager>
</switchingProviders>
Run Code Online (Sandbox Code Playgroud) asp.net ×5
asp.net-mvc ×5
.net ×1
ninject-2 ×1
roleprovider ×1
security ×1
sitecore ×1
t-sql ×1