1
我在我的小應用程序中使用Formsauthentication進行登錄。它在我的本地機器上正常工作,但是當我在雲主機上傳它時會出現錯誤'您的登錄嘗試不成功。請再試一次。'信息。您的登錄嘗試不成功。請再試一次
我login.aspx.cs文件包括以下代碼
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
if (this.Page.User.Identity.IsAuthenticated)
{
FormsAuthentication.SignOut();
Response.Redirect("~/Login.aspx");
}
}
}
protected void ValidateUser(object sender, EventArgs e)
{
try
{
int userId = 0;
string roles = string.Empty;
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("Validate_User"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Username", Login1.UserName);
cmd.Parameters.AddWithValue("@Password", Login1.Password);
cmd.Connection = con;
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
userId = Convert.ToInt32(reader["UserId"]);
roles = reader["Roles"].ToString();
con.Close();
}
switch (userId)
{
case -1:
Login1.FailureText = "Username and/or password is incorrect.";
break;
case -2:
Login1.FailureText = "Account has not been activated.";
break;
default:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, Login1.UserName, DateTime.Now, DateTime.Now.AddMinutes(2880), Login1.RememberMeSet, roles, FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
{
cookie.Expires = ticket.Expiration;
}
Response.Cookies.Add(cookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(Login1.UserName, Login1.RememberMeSet));
break;
}
}
}
catch (Exception ex)
{
lblError.Text = "Ehh.. Enter correct password..";
}
}
和我的具有web.config文件代碼
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="constr" connectionString="Data Source=IP Address;Initial Catalog=DatabaseName;user id=Username;password=PWD;" />
<add name="ECOLLEGEMastersEntities" connectionString="metadata=res://*/MastersDataModel1.csdl|res://*/MastersDataModel1.ssdl|res://*/MastersDataModel1.msl;provider=System.Data.SqlClient;provider connection string="data source=IP Address;initial catalog=DatabaseName;persist security info=True;user id=Username;password=password;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.web>
<machineKey validationKey="24389C4FE31C25B571C6E93CBAD77C8487C66B37FF1E972D392BCC7C58A1412791CD25CA0CC8922E6F88A6B20529F26F0C3743F82E902D7C9C9BBF536B2B02C2"
decryptionKey="05F5BCA7FF367A1C7EC9C2E5CF898B37E445810ACB0F4E3125144321C733E93C" validation="SHA1" decryption="AES" />
<customErrors mode="Off" />
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms defaultUrl="~/Home.aspx" loginUrl="~/Login.aspx" slidingExpiration="true" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<siteMap enabled="true" defaultProvider="SiteMap">
<providers>
<add name="SiteMap" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap" securityTrimmingEnabled="true" />
</providers>
</siteMap>
<pages>
<controls>
<add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
</controls>
</pages>
</system.web>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
和具有2個表 1.角色 角色ID我的數據庫表, RoleName 2.用戶 [UserId],[Username],[Password],[Email],[CreatedDate],[LastLoginDate],[RoleId],[Status]
請幫幫我...我無法理解確切的問題。
我不明白你在這裏做什麼。你有一個自定義的登錄系統,混入了asp.net認證,你不知道如何調試它 - 你不知道你有什麼做? - 無論如何,如果工作在本地,而不是在線,請嘗試在web.config上設置cookie和身份驗證的cookie名稱 - 請參閱類似的答案:http://stackoverflow.com/questions/25764260/setauthcookie-does-not-set -cookie-on-our-test-server/25769180#25769180 – Aristos 2014-09-22 07:17:09
它在我的本地系統上正常工作。但不在雲託管。 – QuaBizIT 2014-09-22 07:20:45
我曾嘗試過domain =「mydomain.com」,但仍未解決... – QuaBizIT 2014-09-22 07:38:37