asp.net一个登录配置问题,不知道怎么说,请看内容=====================================================

yangchun1213 2012-05-16 11:51:06
1. 我的登录时采用asp.net的Login控件,如下:

<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配置如:

<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里配置了统一错误与页面,如:

<customErrors mode="On" defaultRedirect="ErrorPage.aspx">
</customErrors>


我在Global.asax文件中处理处理错误如下:

protected void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/ErrorPage.aspx");

}

当发生错误后就跳到ErrorPage.aspx页面,然后在这个错误页面抓取具体的错误信息,但是现在有一种情况不知道怎么抓取错误信息,就是当服务器配置的ip地址错误时,就无法登陆,但无法显示错误信息,因为我们无法登陆就无法进入到ErrorPage页面,用户只能在登陆界面一直等待,现在要做的就是,当服务器地址配置错误,无法登陆时,我这种情况,应该怎样抓取到错误信息,然后根据错误信息,在Login页面显示一些友好提示,如:请联系管理员,服务器是否配置正确等。我真不知道在这样的环境下怎么弄,忘大侠帮忙~~~~~
...全文
1267 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenberet007 2012-05-18
  • 打赏
  • 举报
回复
难道你发布了网站就直接发布了,都不登录进去看一样吗?
登录不了这样的问题是最基本的,最常见的问题了,
如果连这个错误还得用户替你发现的话,就太说不过去了。
anzhiqiang_touzi 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
"当服务器配置的ip地址错误"
这种情况下能够进入到"用户只能在登陆界面一直等待"这种状态吗?
如果能进入,那就神奇了.

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

DNS 解析域名对应到IP --> IP
这一步都出错了的话,你怎么可能进入到登陆界面?浏览器在尝……
[/Quote]
theks 2012-05-18
  • 打赏
  • 举报
回复
引用
当服务器配置的ip地址错误时
描述清楚一点。。
猜测你的意思:
1.网站的域名解析到的IP地址不正确。这个时候整个网站都无法访问
2.数据库的连接字符串没写对。这个时候网站访问没问题,凡是有数据库读写的页面都有问题
3.你的网站限制了一部分IP不能访问。这个时候被限制的用户会被导向报错的页面
4....

看#8楼的意思,你应该是第二种情况。那么你就需要改造一下membership的登录机制,捕获到无法连接到数据库这个异常,并自己写代码处理跳转,光靠web.config中的配置不行的。
当然也不是绝对不行,像#1楼说的那样,配置customErrors节并启用(mode="on"开启或者"RemoteOnly"只对远程用户开启,不能是Off关闭),然后设置defaultRedirect="你要跳转到的地址",这样有个弊端,就是所有没有明确配置的错误都会跳转到这个地址。
鸭梨山大帝 2012-05-18
  • 打赏
  • 举报
回复
不是我没看懂你的意思,而是之前你的帖子中哪一句说明过:这个IP配错是"数据库连接字符串配置" 数据库连接字符串的IP配错?

另外,不要转嫁由于开发人员/配置人员的技术错误或者失误造成的痛苦给用户,让用户给你排查问题.
如果能够预期的错误,请直接明确提示.

关于数据库连接字符串是否配错,你应该在上线系统的时候做一个checklist进行防呆.

然后使用监控工具来监控DB是否活着.活得好不好.
yangchun1213 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
"当服务器配置的ip地址错误"
这种情况下能够进入到"用户只能在登陆界面一直等待"这种状态吗?
如果能进入,那就神奇了.

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

DNS 解析域名对应到IP --> IP
这一步都出错了的话,你怎么可能进入到登陆界面?浏览器在尝……
[/Quote]

好吧,我承认我菜。

可是不大知道你看懂我的意识没有,我说的当服务器配置的ip地址错误是这么回事,因为数据库放在这个服务器上,登陆时,肯定要去数据库对用户名和密码进行验证,但ip配错了的话,你是无法连接到数据库,所以点击登陆时会等待很长时间,最后还是登陆不了结果返回一个js报错信息Sys.WebForms.PageRequestManager......之类的,而登陆呢用的是asp.net的login控件。这样的话,登陆页面肯定可以访问的,DNS 解析域名对应到IP这一步可以通过啥,只是数据库连接字符串配置错了而已,thanks
yangchun1213 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customError……
[/Quote]
不行的,你都登陆不进去,怎么可能进错误页面呢?我试过了……
work_fei 2012-05-16
  • 打赏
  • 举报
回复
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
写下403错误试下
鸭梨山大帝 2012-05-16
  • 打赏
  • 举报
回复
"当服务器配置的ip地址错误"
这种情况下能够进入到"用户只能在登陆界面一直等待"这种状态吗?
如果能进入,那就神奇了.

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

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

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

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

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

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

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

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

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

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

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

现在的年轻人啊,把无知当作无畏,当作是一种荣耀了.
yangchun1213 2012-05-16
  • 打赏
  • 举报
回复
我表示非常蛋疼,怎么就木有一个人看呢?偌大的一个csdn,真的都是一些什么人来的,看来得去博客园了~~~~~~~
yangchun1213 2012-05-16
  • 打赏
  • 举报
回复
怎么木有人回答了,悲催啊~~~,自己先顶起来吧~~~~
yangchun1213 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
服务器地址配置错误,无法登陆时.那就应该在前台页面js捕获了。
<script language="javascript" type="text/javascript">
try{
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestH……
[/Quote]

恩恩,你说的没错,服务器地址配错时,却是会报js错误,Sys.WebForms.PageRequestManager......
但应该怎样捕获并且给出相应提示呢?望赐教~~~
djy252 2012-05-16
  • 打赏
  • 举报
回复
服务器地址配置错误,无法登陆时.那就应该在前台页面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>

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧