读书人

asp.net一个登录配置有关问题不知道

发布时间: 2012-05-28 17:59:33 作者: rapoo

asp.net一个登录配置问题,不知道怎么说,请看内容=====================================================
1. 我的登录时采用asp.net的Login控件,如下:

C# code
 <asp:UpdatePanel ID="UpdatePanel1" runat="server">                <ContentTemplate>                    <asp:Login ID="loginMain" runat="server" BackColor="#F7F7DE"                         BorderColor="#CCCC99" BorderStyle="Solid"                        BorderWidth="1px" Font-Names="Verdana" Font-Size="10pt" DestinationPageUrl="~/Default.aspx"                        OnLoggingIn="Login1_LoggingIn" OnLoggedIn="Login1_LoggedIn"                         OnLoginError="Login1_LoginError" LoginButtonText="登录" PasswordLabelText="密码:"                         PasswordRequiredErrorMessage="密码是必需的." RememberMeText="记住我" TitleText="登录"                         UserNameLabelText="用户名:" UserNameRequiredErrorMessage="用户名是必需的."                         VisibleWhenLoggedIn="False" FailureText="登陆失败,请重试!">                        <TextBoxStyle Width="120px" />                        <TitleTextStyle BackColor="#6B696B" Font-Bold="True" ForeColor="#FFFFFF" />                    </asp:Login>                </ContentTemplate>            </asp:UpdatePanel>


2. 我采用了asp.net的Form验证方法,web.config配置如:
XML code
 <authentication mode="Forms">      <forms name="login" loginUrl="/login.aspx" />    </authentication>    <membership defaultProvider="MyMembershipProvider">      <providers>        <add name="MyMembershipProvider" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="3" connectionStringName="MyMembershipConnString" applicationName="MyMembership" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" type="System.Web.Security.SqlMembershipProvider" />      </providers>    </membership>


3. 我在web.config里配置了统一错误与页面,如:
XML code
 <customErrors mode="On"  defaultRedirect="ErrorPage.aspx"> </customErrors>


我在Global.asax文件中处理处理错误如下:
C# code
protected void Application_Error(object sender, EventArgs e)        {            Server.Transfer("~/ErrorPage.aspx");        }

当发生错误后就跳到ErrorPage.aspx页面,然后在这个错误页面抓取具体的错误信息,但是现在有一种情况不知道怎么抓取错误信息,就是当服务器配置的ip地址错误时,就无法登陆,但无法显示错误信息,因为我们无法登陆就无法进入到ErrorPage页面,用户只能在登陆界面一直等待,现在要做的就是,当服务器地址配置错误,无法登陆时,我这种情况,应该怎样抓取到错误信息,然后根据错误信息,在Login页面显示一些友好提示,如:请联系管理员,服务器是否配置正确等。我真不知道在这样的环境下怎么弄,忘大侠帮忙~~~~~

[解决办法]
服务器地址配置错误,无法登陆时.那就应该在前台页面js捕获了。
<script language="javascript" type="text/javascript">
try{
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
if (args.get_error() != undefined) {

/////判断得到的信息是否正确
if(args.get_response().get_responseAvailable()){


var statusCode = args.get_response().get_statusCode();
//状态码小于200或者大于等于300,则表示出现了错误
if (statusCode < 200 || statusCode >= 300) {
args.set_errorHandled(true);
}
}
}
}
}catch(e){
}
</script>
[解决办法]
"当服务器配置的ip地址错误"
这种情况下能够进入到"用户只能在登陆界面一直等待"这种状态吗?
如果能进入,那就神奇了.

用户请求某网址 --> DNS 解析域名对应到IP --> IP --> IIS服务(假设你是IIS) --> Handle 响应请求 --> ... ...

DNS 解析域名对应到IP --> IP
这一步都出错了的话,你怎么可能进入到登陆界面?浏览器在尝试一段时间连接域名-->IP,后会直接告诉用户,该页面不可用,根本没有与你的服务器,IIS服务发生任何关系,这个时候无论是页面跳转,还是JS,都是白费的!

而"当服务器配置的ip地址错误" <-- 这种错误应该直接让用户来揭露出来吗? 搞笑!

说实话,首先这种错误不应该发生,如果某网站管理员发生了该类错误,那应该直接被骂,被罚!

而且针对这种问题的防呆机制也不应该是报告给用户!

还要求:"在Login页面显示一些友好提示,如:请联系管理员,服务器是否配置正确等。"

无语了~! 这种要求太无理了.

===================

而且你最后一帖居然发出这种感慨:"我表示非常蛋疼,怎么就木有一个人看呢?偌大的一个csdn,真的都是一些什么人来的,看来得去博客园了~~~~~~~"

能不能先了解一下基础的http协议,跟IIS配置,再来发出此类感叹?!

你这个问题到博客园去提,我保证一堆人等着批你~!特别是最后一帖的态度!

现在的年轻人啊,把无知当作无畏,当作是一种荣耀了.

读书人网 >asp.net

热点推荐