除了在AccountController.cs文件中生成的内容之外,我无法使WebSecurity对象在任何地方工作.帐户控制器的[InitializeSimpleMembership]属性设置在顶部.例如,登录功能不会抱怨打电话WebSecurity.Login(...).我向AccountController添加了一个子动作:
[ChildActionOnly]
[AllowAnonymous]
public ActionResult NavBar()
{
NavBarViewModel viewModel = new NavBarViewModel();
viewModel.LinkItems = new List<NavBarLinkItem>();
if (Request.IsAuthenticated)
{
SimpleRoleProvider roleProvider = new SimpleRoleProvider();
if (roleProvider.IsUserInRole(User.Identity.Name, "User"))
{
viewModel.LinkItems.Add(new NavBarLinkItem()
{ Title = "Create Project", Action = "Create", Controller = "Project" });
}
}
viewModel.LinkItems.Add(new NavBarLinkItem() { Title="Help", Action="Index", Controller="Help" });
return PartialView("_NavBar", viewModel);
}
Run Code Online (Sandbox Code Playgroud)
保持原样,代码崩溃"if(roleProvider.IsUserInRole(User.Identity.Name,"User"))""行与主题错误消息.所以我进入InitialzeSimpleMembershipAttribute.cs文件并在我的函数顶部复制/粘贴这一行:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
Run Code Online (Sandbox Code Playgroud)
...并获取一条错误消息,即只应调用一次WebSecurity.InitializeDatabaseConnection.这是有道理的,因为在控制器定义的顶部有一个属性应该已经调用了这个函数(并且看起来它确实很好).所以为了安全起见,我将以上电话改为:
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId",
"UserName", autoCreateTables: true);
}
Run Code Online (Sandbox Code Playgroud)
...并获取原始错误消息,应该在blah blah blah之前调用WebSecurity.InitializeDatabaseConnection.任何对这种疯狂的见解都将不胜感激
我们在Windows窗体上有一个数据绑定XtraGrid.其中一列是复选框.问题如下:当用户选中复选框并单击"确定"按钮时,网格不会检查明确检查的复选框.当我这样做(循环遍历行)时:
isAllowed = Convert.ToBoolean(viewMain.GetRowCellValue(nRowCtr, "IsAllowed"))
Run Code Online (Sandbox Code Playgroud)
我回来假.但是,如果用户选中该框,然后单击表单上的其他位置或此网格中的另一行,从而从已选中的复选框中取消焦点,则上述相同的代码将返回True.
任何有关如何解决此问题的见解将不胜感激.
找到的解决方法: 使用默认设置,当用户单击单元格进行编辑时,单元格进入编辑模式,加载编辑器控件(在本例中我有一个CheckEdit存储库控件)并更改控件的值(在本例中为checked状态) .如果我单击另一行或另一个控件,则单元格将退出编辑模式,将更改提交到数据项.但是,如果我点击一个按钮,那么我的更改就会丢失.解决方法是使用CheckEdit的CheckedChanged事件来关闭编辑器:
Private Sub edCheck_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles edCheck.CheckedChanged
gridYears.FocusedView.CloseEditor()
End Sub
Run Code Online (Sandbox Code Playgroud) 根据淘汰单击绑定文档的"注3",Knockout阻止click事件执行默认功能.要覆盖此行为,我所要做的就是从处理函数返回true.所以,我有这个标记:
<div data-bind="visible:Pages().length == 0">
<div class="alert alert-info">Click "Parse" button.</div>
<button class="btn" id="btnParse" title="Parse Tabs">Parse</button>
</div>
Run Code Online (Sandbox Code Playgroud)
现在,我想将按钮事件附加到按钮,如下所示:
$(function () {
$('#btnParse').on('click', function () { alert('clicked'); return true;});
});
Run Code Online (Sandbox Code Playgroud)
请注意,我从函数返回true.这个偶数处理程序从不会触发.我怎样才能做到这一点?
我们有一个第三方系统,可以将数据从他们的服务器提取到网络客户端。服务器连接到 MySQL 数据库。数据通过 JSON 字符串传输。显然,其中一列包含的字符在引入 JSON 字符串时会破坏格式。我唯一的办法是修复列中的数据。我正在考虑对所有内容进行 URL 编码。在 MySQL 中有一个简单的方法可以做到这一点吗?
这是对封闭系统行为的有根据的猜测。我将向数据表添加另一列(column_b)。然后我想用来自column_a 的URL 编码数据填充它。像这样的东西: UPDATE mytable set column_b = some_url_encode_function(column_a);
我想配置jade引擎来处理我的views文件夹中的.html文件.这是我的currentserver配置:
app.configure(function(){
var pub_dir = __dirname + '/public';
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({ secret: nconf.get("site:secret") }));
app.use(everyauth.middleware());
app.use(require('less-middleware')({ src: pub_dir, force:true }));
app.use(express.static(pub_dir));
app.use(app.router);
app.use(logErrors);
app.use(clientErrorHandler);
app.use(errorHandler);
});
Run Code Online (Sandbox Code Playgroud) meteor mongo -U将我显示mongodb://127.0.0.1:3001/meteor为连接字符串。据我所知,docker 映像将尝试连接到自身并失败。我尝试用 127.0.0.1 替换运行时能找到的任何 IP 地址,ifconfig结果相同:
{ [MongoError: connect ECONNREFUSED xxx.xxx.xxx.xxx:3001]
name: 'MongoError',
message: 'connect ECONNREFUSED xxx.xxx.xxx.xxx:3001' }
Run Code Online (Sandbox Code Playgroud)
不知道我还能尝试什么来解决这个问题。任何指示将不胜感激。
更多信息:
mongo 127.0.0.1:3001/meteor在不同的 shell 窗口中工作。但其他 IP 地址不起作用: mongo 10.0.0.96:3001/meteor:
2015-11-16T10:16:14.089-0500 W NETWORK Failed to connect to 10.0.0.96:3001, reason: errno:61 Connection refused
2015-11-16T10:16:14.091-0500 E QUERY Error: couldn't connect to server 10.0.0.96:3001 (10.0.0.96), connection attempt failed
at connect (src/mongo/shell/mongo.js:181:14)
at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed
Run Code Online (Sandbox Code Playgroud)
====================== 其他设置信息 ====================
创建一个基本的流星应用程序:meteor create app cd …
我们有一个声明感知应用程序,并使用ADFS服务器来验证来自我们合作伙伴网络的用户.拥有自己的ADFS服务器的客户没有问题.他们的ADFS服务器以SAML 1.0格式向我们发送令牌,一切都很顺利.我们有一个客户端向我们的ADFS服务器发送未经请求的SAML 2.0帖子.信任关系有效,用户进入我们的系统,但没有任何索赔通过.我们得到的就是这个(来自我们的应用程序日志文件):
9/1/2015 7:35:44 PM: Claim type = http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod, value = urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
9/1/2015 7:35:44 PM: Claim type = http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant, value = 2015-09-01T23:35:40.194Z
Run Code Online (Sandbox Code Playgroud)
比较SAML令牌,格式是完全不同的.例如,SAML 1中有一个自定义声明,如下所示:
<saml:Attribute xmlns:a="http://schemas.xmlsoap.org/ws/2009/09/identity/claims" AttributeName="customerguid" AttributeNamespace="http://schemas.xmlsoap.org/ws/2005/05/identity/claims" a:OriginalIssuer="http://Absolut.vis-intel.net/adfs/services/trust">
<saml:AttributeValue>8835cf46-07a6-45f7-82d9-978905b5911f</saml:AttributeValue>
</saml:Attribute>
Run Code Online (Sandbox Code Playgroud)
但他们是这样的:
<saml2:Attribute Name="CustomerGuid">
<saml2:AttributeValue>b4f3dd70-ef42-4596-be76-3e3fa077d06e</saml2:AttributeValue>
</saml2:Attribute>
Run Code Online (Sandbox Code Playgroud)
我们想也许我们需要对索赔规则做些什么.他们看起来像这样:
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/customerguid"]
=> issue(claim = c);
Run Code Online (Sandbox Code Playgroud)
我们添加了自定义声明类型,并尝试更改声明规则以使用它们来尝试抓取CustomerGuid,但这没有任何区别:
c:[Type == "CustomerGuid"] => issue(claim = c);
Run Code Online (Sandbox Code Playgroud)
寻找有关如何使这项工作的任何指针.
Node.js,mongojs,mongodb.我正在使用正则表达式搜索技能列表.这是我的服务器代码:
var nconf = require('nconf');
var db = require('mongojs').connect(nconf.get('mongolab:connection'), ['skills', 'users']);
app.get('/api/skill', function(req, res){
console.log('searching for ' + req.query['q']);
var query = '{name: /' + req.query['q'] + '/i}';
console.log('query: ' + query);
db.skills.find(query, function(err, data){
console.log('returning ' + JSON.stringify(data));
if(!err){
res.writeHead(200, {'content-type': 'text/json' });
res.write( JSON.stringify(data) );
res.end('\n');
}
});
});
Run Code Online (Sandbox Code Playgroud)
我的列表中有"asp.net"的值.控制台日志输出:
searching for .net
query: {name: /.net/i}
returning []
Run Code Online (Sandbox Code Playgroud)
我使用MongoHub连接到同一个服务器/ db,在查询字段中粘贴语句,然后取回我的记录:
{
"name": "asp.net",
"description": "",
"_id": {
"$oid": "500b4aae14f7960e91000001"
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?