表单身份验证不会重定向到 defaultUrl
Forms authentication does not redirect to defaultUrl
我正在 asp.net 上开发一个网站,我包含了 FormsAutentication,但是当我第一次点击登录按钮时我遇到了问题,网站将我重定向到 http://localhost:2075/ instead of http://localhost:2075/Mensajes.aspx. The second time I complete user and password and click login button the web redirect me to http://localhost:2075/Mensajes.aspx。有什么想法吗?
这是我的web.config
<system.web>
<customErrors mode="Off"/>
<sessionState timeout="90"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<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 name="MiWeb" loginUrl="Autenticacion.aspx" defaultUrl="Mensajes.aspx" timeout="90"/>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
<system.webServer>
<defaultDocument>
<files>
<add value="Autenticacion.aspx"/>
</files>
</defaultDocument>
<directoryBrowse enabled="false"/>
</system.webServer>
下面是我的代码
protected void LoginUser_Authenticate(object sender, AuthenticateEventArgs e)
{
DAOUsuarios daouser = DAOUsuarios.Instance();
try
{
Usuario usr = daouser.getByUsuario(LoginUser.UserName);
if (usr != null)
{
e.Authenticated = true;
Session["UsuarioLogueado"] = usr;
FormsAuthentication.RedirectFromLoginPage(LoginUser.UserName, LoginUser.RememberMeSet);
}
}
catch (Exception ex)
{
LoginUser.FailureText = "Error al iniciar Sesion " + ex.Message;
}
}
为了以防万一有人需要它,我找到了这个问题的解决方案。首先,ReturnUrl=%2f 是 asp.net 的自动值。
如果您需要的页面需要身份验证,网站会将您重定向到登录页面,否则它会将您重定向到您想要在第一时间进入的页面。
由于我的 defaultDocument 设置为 "Autenticacion.aspx",该网站将我重定向到该页面。所以我将 defaultDocument 更改为 "Mensajes.aspx",它工作正常。
我正在 asp.net 上开发一个网站,我包含了 FormsAutentication,但是当我第一次点击登录按钮时我遇到了问题,网站将我重定向到 http://localhost:2075/ instead of http://localhost:2075/Mensajes.aspx. The second time I complete user and password and click login button the web redirect me to http://localhost:2075/Mensajes.aspx。有什么想法吗?
这是我的web.config
<system.web>
<customErrors mode="Off"/>
<sessionState timeout="90"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<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 name="MiWeb" loginUrl="Autenticacion.aspx" defaultUrl="Mensajes.aspx" timeout="90"/>
</authentication>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
<system.webServer>
<defaultDocument>
<files>
<add value="Autenticacion.aspx"/>
</files>
</defaultDocument>
<directoryBrowse enabled="false"/>
</system.webServer>
下面是我的代码
protected void LoginUser_Authenticate(object sender, AuthenticateEventArgs e)
{
DAOUsuarios daouser = DAOUsuarios.Instance();
try
{
Usuario usr = daouser.getByUsuario(LoginUser.UserName);
if (usr != null)
{
e.Authenticated = true;
Session["UsuarioLogueado"] = usr;
FormsAuthentication.RedirectFromLoginPage(LoginUser.UserName, LoginUser.RememberMeSet);
}
}
catch (Exception ex)
{
LoginUser.FailureText = "Error al iniciar Sesion " + ex.Message;
}
}
为了以防万一有人需要它,我找到了这个问题的解决方案。首先,ReturnUrl=%2f 是 asp.net 的自动值。 如果您需要的页面需要身份验证,网站会将您重定向到登录页面,否则它会将您重定向到您想要在第一时间进入的页面。 由于我的 defaultDocument 设置为 "Autenticacion.aspx",该网站将我重定向到该页面。所以我将 defaultDocument 更改为 "Mensajes.aspx",它工作正常。