我有一个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应用程序需要更多标准的电子邮件验证.我怎么做?
我正在实施一个应用程序,其中使用该应用程序的公司中的每台机器都有一个机制.我正在尝试实现一个用户策略,如果用户处于"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是否与数据库中的相同.
我有这个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) c# ×2
asp.net ×1
asp.net-mvc ×1
javascript ×1
jquery ×1
json ×1
regex ×1
session ×1
str-replace ×1