我有一个使用任意数量的成员资格提供者的.Net应用程序.我不会理解这些原因,但我不希望这些原因得到预先配置,但我想以编程方式创建和添加它们.反正有没有这样做?我没有创建提供程序的问题,但Membership.Providers是readonly,所以我无法添加它们.
不幸的是,我在网上找到的自定义角色和成员提供商背后的表单身份验证代码的所有示例都是用VB.NET代码编写的,我需要一个C#代码.请帮忙!!!!
我需要一个代码隐藏,它将执行以下操作:
Default.aspx代码:
<asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false">
<LayoutTemplate>
<span class="failureNotification">
<asp:Literal ID="FailureText" runat="server"></asp:Literal>
</span>
<asp:ValidationSummary ID="LoginUserValidationSummary" runat="server" CssClass="failureNotification"
ValidationGroup="LoginUserValidationGroup"/>
<div class="accountInfo">
<fieldset class="login">
<legend>Account Information</legend>
<p>
<asp:Label ID="usernameLabel" runat="server" AssociatedControlID="username">Username:</asp:Label>
<asp:TextBox ID="username" runat="server" CssClass="textEntry"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="username"
CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required."
ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p>
<asp:Label ID="passwordLabel" runat="server" AssociatedControlID="password">Password:</asp:Label>
<asp:TextBox ID="password" runat="server" CssClass="passwordEntry" …Run Code Online (Sandbox Code Playgroud) c# asp.net forms-authentication roleprovider membership-provider
我正在尝试为sitecore实现一个非常简单的MembershipProvider,但我不确定它是否太简单而无法实际工作.基本上我们已经有一个用户数据的自定义商店,所以我知道客户MembershipProvider是要走的路.但是我的应用程序不会记录任何人,系统的不同部分负责.此外,它并不关心究竟是谁登录,只关注它们是否是(我的网站内容区域中的哪个部分无关紧要).
那么最好的方法是什么呢?我在HTTP标头中传递了一个令牌,它允许我识别是否有人登录(我甚至可以使用它来实际找出客户是谁,如果我愿意) - 不要担心它是加密的.
我已经阅读了sitecore文档,但它们都处理了MembershipProviders的完整实现.
那么实际上是否有可能只有这样的成员资格提供者即返回用户表示被记录,或者返回那些已注销的"匿名"用户?它不需要关心其他任何事情 - 密码重置,通过电子邮件和所有爵士乐查找用户.
谢谢,尼克
编辑:在Jens的帮助下,我已经全心全意地采用MembershipProvider了更轻量级的方法.
这就是我到目前为止,问题是用户没有通过多个请求登录.
public class TokenLogin : HttpRequestProcessor
{
#region Overrides of HttpRequestProcessor
/// <summary>
/// Processes the specified args.
/// </summary>
/// <param name="args">The args.</param>
public override void Process(HttpRequestArgs args)
{
var customer = SomeCodeToParseAndValidateToken();
//customer is null if token is invalid or missing
if(customer == null || Sitecore.Context.User.IsAuthenticated) return;
CreateVirtualUser(customer);
}
private static void CreateVirtualUser(CustomerAccount customer)
{
string userName = "extranet\\" + …Run Code Online (Sandbox Code Playgroud) 哪个是使用MVC 4中的SimpleMembershipProvider访问webpages_Membership表信息的最佳方法?如果他/她输入错误密码三次,我正在尝试实施帐户阻止.
非常感谢
asp.net-membership membership-provider asp.net-mvc-4 simplemembership
我正在为Umbraco 7.1.7的会员区建立一个登录/注册部分.
我想通过电子邮件以明文形式向用户发送密码.
这个想法是,如果用户忘记了密码,他们只需输入他们的电子邮件地址(也可以作为他们的用户名)并点击按钮:

现在,我知道Umbraco使用ASP.NET成员资格提供程序和哈希密码,这很不错但我需要访问明文版本才能在电子邮件中发送.
我已经更改了我的web.config以包含这个:
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="UmbracoMembershipProvider"
type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco"
minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="0"
useLegacyEncoding="true"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
defaultMemberTypeAlias="Member"
passwordFormat="clear" />
Run Code Online (Sandbox Code Playgroud)
我的Controller Action方法如下所示:
// Forgot password logic to send email
[ActionName("MvcMemberForgot")]
public ActionResult MvcMemberForgot(MvcMemberForgotModel model)
{
string emailaddress = model.Email.ToString(); // The users entered email address.
var member = Services.MemberService.GetByEmail(emailaddress);
var sb = new StringBuilder(); // To build the message.
sb.Append("Here is the password you …Run Code Online (Sandbox Code Playgroud) c# model-view-controller membership-provider password-recovery umbraco7
2015 年 11 月 20 日更新
如何针对使用旧会员提供程序存储用户的数据库进行身份验证?(aspnet_* 表)知道这个数据库被其他应用程序使用,所以我没有迁移(或更改)数据库的选项?
对于寻找迁移的人,请查看Maxime Rouiller的回答
老问题
我可以在 aspnet vNext 中使用 aspnet 会员资格吗?,
.net 4.x,core50而是使用(如果可用)(因为我打算稍后在 linux 上托管它)asp.net-membership membership-provider asp.net-identity asp.net-core
我一直在讨论这个问题.我需要将用户输入的paasword与会员数据库中的密码进行比较.密码经过哈希处理并且有盐.由于缺少文档,我不知道盐是否附加到密码,然后散列如何创建它.
我无法得到这个匹配.从函数返回的散列永远不会匹配数据库中的散列,我知道它是相同的密码.微软似乎以与我不同的方式对密码进行哈希处理.
我希望有人有一些见解.
这是我的代码:
protected void Button1_Click(object sender, EventArgs e)
{
//HERE IS THE PASSWORD I USE, SAME ONE IS HASHED IN THE DB
string pwd = "Letmein44";
//HERE IS THE SALT FROM THE DB
string saltVar = "SuY4cf8wJXJAVEr3xjz4Dg==";
//HERE IS THE PASSWORD THE WAY IT STORED IN THE DB AS HASH
string bdPwd = "mPrDArrWt1+tybrjA0OZuEG1P5w=";
// FOR COMPARISON I DISPLAY IT
TextBox1.Text = bdPwd;
// HERE IS WHERE I DISPLAY THE return from THE FUNCTION, IT SHOULD MATCH THE …Run Code Online (Sandbox Code Playgroud) c# membership security asp.net-membership membership-provider
目标是:我需要一个wcf方法,它将在数据库中创建用户.
我正在使用会员提供商.我的客户端是SmartPhone /移动设备.
我写了一个方法,当我测试方法时会创建用户BUT我得到以下错误.
错误:
尝试初始化System.Data.SqlClient.SqlConnection对象时发生错误.为连接字符串提供的值可能有误,或者可能包含无效语法.参数名称:connectionString
我在以下行中收到此错误:
Membership.CreateUser(name, password,email,"question","answer",true,out createStatus);
Run Code Online (Sandbox Code Playgroud)
我使用与用于从数据库中读取数据的相同connectionString.
我的连接字符串是:
<add name="MajangoEntities" connectionString="metadata=res://*/EntityModel.MajangoEntityModel.csdl|res://*/EntityModel.MajangoEntityModel.ssdl|res://*/EntityModel.MajangoEntityModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:sql2k298.discountasp.net;initial catalog=SQL2008R2_835021_myddb;user id=SQL2008R2_835021_mydb_user;password=mypassword;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
有人能帮助我一些想法吗?
我试图在完全"登录"到我正在构建的站点之前检查给定用户是否有角色.通常我会使用代码:
User.IsInRole("CustomRole")
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,该行总是产生"假" - 我相信这是因为使用User.IsInRole,用户必须已经完全登录.我试图在我的帐户控制器的LogOn方法中检查这条信息,所以用户尚未登录(我认为).
我将如何返回用户对象,以便我可以执行下面尝试执行的操作:
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
// Need to identify the user because the "User" is not officially 'logged in' yet and cannot be accessed via "User.IsInRole" - am I correct in this understanding
MembershipUser u = Membership.GetUser(model.UserName);
if (u.IsInRole("Administrator"))
. . . . truncated
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出以下错误:
'System.Web.Security.MembershipUser' does not contain a definition for 'IsInRole' and no extension method 'IsInRole' accepting a first argument of …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用IIdentity的exention方法
这是我的班级:
public static class MyIdentity
{
public static string FullName(this IIdentity identity)
{
return "John Doe";
}
}
Run Code Online (Sandbox Code Playgroud)
而我正试图在我的观点上使用它:
@Context.User.Identity.FullName()
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
'System.Security.Principal.IIdentity'不包含'FullName'的定义,并且没有扩展方法'FullName'接受类型'System.Security.Principal.IIdentity'的第一个参数可以找到
c# asp.net-mvc extension-methods iidentity membership-provider
c# ×4
asp.net ×2
asp.net-mvc ×2
.net ×1
asp.net-core ×1
iidentity ×1
isinrole ×1
membership ×1
roleprovider ×1
security ×1
sitecore ×1
umbraco7 ×1
wcf ×1