您的位置:首页 > 其它

.NET Framework中存在的诸多问题。

2012-02-25 23:07 155 查看
以下问题或不足均在.NET Framework 4中存在。

问题一、

在使用Membership.CreateUser时 ,如果你传递一个无效的电子邮件地址,如Anonymous。理应在MembershipCreateStatus状态中会返回这个枚举MembershipCreateStatus.InvalidEmail,但是遗憾的是它会抛出一个FormatException异常,这个枚举显然没有起到作用,应是一个Bug。

所以需要在调用CreateUser方法自己使用正则去验证。

问题二、

在使用Membership时,如果你启用了密码提示问题与答案的话,在使用MembershipUser.GetPassword(passwordAnswer)重载时,如果你提供的密码提示问题对应的答案passwordAnswer与MembershipUser实例所对应的用户的答案不匹配时,该方法会报出一个异常。而不会像Membership.CreateUser时返回一个成功或失败的标志。

您只能去使用try catch去捕获这个异常。异常的发生会导致正常的执行流被打断。显示这里的设计显得很不足。

如果你使用无参的Membership.GetPassword(),是可以取回密码。但是密码提示问题与答案又有什么意义呢?

问题三、

在使用异步的IHttpAsyncHandler时,请看这个方法的签名

public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{}


假设我通过context中获取一个从浏览器中post过来的参数username,但是该username是字符串,按理这样的请求应立即中断,像下面 这样:

public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
string username= context.Request.Form.Get("username");
if (string.IsNullOrWhiteSpace(username))
{
???
}}


请问我接下来该怎么写?返回一个null吗,不行。context.Response.End()这样吗?也不行。

欢迎补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐