小编dlg*_*ght的帖子

C#MVC 4应用程序中的电子邮件地址验证:使用或不使用Regex

我有一个MVC 4 Web应用程序,我需要输入并验证一些电子邮件地址,而不向用户的电子邮件地址发送电子邮件.

目前我正在使用此模式的基本正则表达式电子邮件验证:

[RegularExpression(@"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z",
        ErrorMessage = "Please enter correct email address")]
Run Code Online (Sandbox Code Playgroud)

虽然这是验证电子邮件地址,但它会将1@1.1作为有效的电子邮件地址传递.目前我有一个需要符号@符号的验证.符号可以是数字/字母和._-的符号.

我的MVC 4应用程序需要更多标准的电子邮件验证.我怎么做?

c# regex asp.net-mvc email-validation asp.net-mvc-4

22
推荐指数
3
解决办法
10万
查看次数

如何在MVC 4应用程序中进行单用户登录

我正在实施一个应用程序,其中使用该应用程序的公司中的每台机器都有一个机制.我正在尝试实现一个用户策略,如果用户处于"Mechanic"角色 - 用户名为Machine1,并且已登录该机器,则只有一个用户可以使用Machine1用户名同时登录公司.如果其他人尝试使用相同的用户名登录,则应阻止该用户名并告知已登录用户.当会话超时到期时,我应该注销登录用户并释放要使用的登录名.当用户自己注销时也会发生同样的情况.我正在尝试在asp.net MVC 4应用程序上构建它.

我曾想过在数据库中使用SessionId,UserId和IsLoggedIn布尔值.但在这种情况下,我需要更改MVC应用程序中会话超时的登录标志以写入数据库,如果许多用户登录,这似乎有点过分.

实施会是什么样的?我应该使用哪些方法或属性来处理数据库中的会话管理?

FYI

我已经制作了自己的方法,我检查用户是否已登录,这里是:

public static bool ValidateUser(string username, string password, string companyName)
{
    int? companyId = myRepository.GetCompanyId(companyName);

    int? userId = companyId == 0 ? null : myRepository.GetUserId(username, companyId);

    if (userId.HasValue && userId.Value != 0)
    {
        var userKey = Security.GenerateUserKey(username, companyName);
        return WebSecurity.Login(userKey, password);
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个方法中,我可以检查会话ID是否与数据库中的相同.

c# asp.net session asp.net-mvc-4 simplemembership

6
推荐指数
1
解决办法
3594
查看次数

如何使用google visualization api柱形图中使用的json对象内的数字替换字符串值

我有这个Json字符串,我用于谷歌图表可视化,需要采用这种确切的格式,我需要将数字"v"的每个值替换为其数值(不带""的值).我应该做一些javascript替换功能,但我找不到一种方法来移动json对象.这是我应该修改的示例json字符串:

{"cols":[
{"id":"r","label":"Reason","type":"string"},
{"id":"m","label":"Minutes","type":"number"}
],
"rows":[
{"c":[
     {"v":"Flour - Blower","f":"Flour - Blower"},
     {"v":"7","f":"7"}]},
{"c":[
     {"v":"Whole Line - d","f":"Whole Line - d"},
     {"v":"4","f":"4"}]},
{"c":[
     {"v":"Flour - Pipework","f":"Flour - Pipework"},
     {"v":"3","f":"3"}]},
{"c":[
     {"v":"Horseshoe - Belt","f":"Horseshoe - Belt"},
     {"v":"1","f":"1"}]}
],
"p":null
}
Run Code Online (Sandbox Code Playgroud)

可能我应该这样做:

var jsonStr = ...;

for (i in jsonStr.rows) {
   for(j in jsonStr[i].c)
   { 
    if (parseInt(jsonStr[i].c[j].v) != 'NaN') {
        jsonStr.rows[i].c[j].v = parseInt(jsonStr.rows[i].c[j].v);
   }
 }
Run Code Online (Sandbox Code Playgroud)

javascript jquery json google-visualization str-replace

4
推荐指数
1
解决办法
4898
查看次数