小编AJ.*_*AJ.的帖子

奇怪的IIS Windows身份验证行为

我有一个ASP.NET 3.5 Web服务(旧学校SOAP,而不是WCF)在IIS 6.0中设置相同的两台服务器上运行.身份验证/访问控制设置如下:

  • 启用匿名访问= False
  • 集成Windows身份验证= True
  • Windows域服务器的摘要式身份验证= False
  • 基本身份验证= False
  • .NET Passport身份验证= False

在其中一个Web方法中,我需要获取请求用户的身份并验证它是否在某个Active Directory组中.所以,web方法中的第一行代码是这样的:

var requestUser = HttpContext.Current.Request.LogonUserIdentity.Name;
Run Code Online (Sandbox Code Playgroud)

由于某种原因,两台服务器之间的结果不同.Server1按预期工作,生成domain\UserId.但是,Server2生成Server2\IUSR_SERVER2.有谁之前经历过这个吗?我确实找到了这个问题,但我很确定它不适用于客户端,两个服务器都在同一个域中.

附加信息

根据Heinzi的回复,我在以下<system.web>两个web.config文件中添加了以下内容:

<authorization>
    <deny users="?" />
    <allow users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)

现在,Server1的行为相同,因为它的行为与我想要的一样.但是,Server2抛出401.2:Unauthorized错误:

'/'应用程序中的服务器错误.

访问被拒绝.描述:访问提供此请求所需的资源时发生错误.可能未配置服务器以访问请求的URL.

错误消息401.2.:未授权:由于服务器配置登录失败.验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面.请与Web服务器的管理员联系以获取其他帮助.

版本信息:Microsoft .NET Framework版本:2.0.50727.3603; ASP.NET版本:2.0.50727.3053

asp.net authentication iis-6 web-services

7
推荐指数
1
解决办法
1万
查看次数

根据另一列中自动完成的结果更改jqGrid文本列的可编辑属性

我正在使用jqGrid 4.4.0和内联编辑.为了这个问题,我的网格有四列:一个ID列(SomeGridRowId),一个带有jQuery自动完成(自动完成)的文本列,一个单字符文本列(SingleChar)和一个隐藏boolean列(CanEditSingleChar).我需要根据列的值启用或禁用单个字符列的编辑CanEditSingleChar.我已经使用onSelectRow和处理现有行setColProp,但由于某种原因,我不能让它在新插入的行上正确行为.如果我添加新行并从自动填充中选择一个值,则该SingleChar始终不可编辑.我使用Chrome和IE开发人员工具逐步完成了Javascript; 列值和属性设置正确,但SingleChar列的editable属性不反映这一点.

我为巨大的代码片段道歉,但我不想遗漏任何东西.

$("#coolGrid").jqGrid({
    url: '@Url.Action("GetCoolGridData")',
    postData: {
        someId: function () { return $("#someId").val(); },
        otherStaticArg: function () { return 1; }
    },
    datatype: 'json',
    mtype: 'POST',
    loadonce: true,
    cellsubmit: 'clientArray',
    editurl: 'clientArray',
    scroll: true,
    pager: $("#coolGridPager"),
    rowNum: 200,
    sortname: 'SomeGridRowId',
    sortorder: 'asc',
    viewrecords: true,
    height: '100%',
    colNames: ['SomeGridRowId', 'CanEditSingleChar', 'Autocomplete', 'SingleChar'],
    colModel: [
        { name: 'SomeGridRowId', index: 'SomeGridRowId', hidden: true },
        { …
Run Code Online (Sandbox Code Playgroud)

jquery jqgrid

7
推荐指数
1
解决办法
8313
查看次数

VS2008调试器挂起

我正在使用带有SP1的Visual Studio 2008 Team System,并且我注意到每当我停止调试应用程序时IDE会挂起几(10-15)秒的烦人倾向.起初我认为这只发生在WPF应用程序中,但我也观察到Windows窗体应用程序和ASP.NET站点中的行为.我已根据之前的帖子对选项进行了一系列更改,并完成了详尽的Google/MSDN搜索,但仍未找到阻止此操作的方法.

有人有主意吗?


@ korona - 不,没有解决它.谢谢你的建议.

ProcMon中的更多研究显示了这个有趣的消息,不确定它是否相关:

8:45:46.6790857 AM  WindowsFormsApplication1.vshost.exe 7684    FASTIO_CHECK_IF_POSSIBLE    C:\WINXP\Microsoft.NET\Framework\v2.0.50727\CONFIG\enterprisesec.config.cch FAST IO DISALLOWED  Operation: Read, Offset: 48, Length: 12
8:45:46.6793569 AM  WindowsFormsApplication1.vshost.exe 7684    ReadFile    C:\WINXP\Microsoft.NET\Framework\v2.0.50727\CONFIG\enterprisesec.config.cch FAST IO DISALLOWED  Offset: 508, Length: 12
Run Code Online (Sandbox Code Playgroud)

重复几次,如数百次,然后切换到不同的路径:

8:45:46.7470314 AM  WindowsFormsApplication1.vshost.exe 7684    FASTIO_CHECK_IF_POSSIBLE    D:\documents and settings\myusername\Application Data\Microsoft\CLR Security Config\v2.0.50727.42\security.config.cch   FAST IO DISALLOWED  Operation: Read, Offset: 48, Length: 12
8:45:46.7472187 AM  WindowsFormsApplication1.vshost.exe 7684    ReadFile    D:\documents and settings\myusername\Application Data\Microsoft\CLR Security Config\v2.0.50727.42\security.config.cch   FAST IO DISALLOWED  Offset: 508, Length: 12 …
Run Code Online (Sandbox Code Playgroud)

visual-studio-2008

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

jqGrid不保存内联行编辑

我在ASP.NET MVC 4网站jQuery 1.7.2中使用jqGrid 4.3.2.应用程序中有几个地方使用jqGrid.我现在的一般设置是所有编辑都在本地(loadonce: trueclientArray)内联导航和编辑完成,并且所有网格数据都通过AJAX调用在表单提交时发布到服务器.我在行编辑和它们承诺的事件中遇到了一些困难.您可以在此处查看网站(以及来源,正在进行的总工作,不错).如果添加或编辑行,然后单击页面上的其他位置,则不会保存行编辑.用户必须在行编辑期间的某处按Enter键以保存行.

我在这个问题上略微谈到了这一点,奥列格乐意回答.除了按下回车键之外,有没有办法提交行编辑,比如当行失去焦点时?

jquery jqgrid

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

用AJAX加载的Javascript和MVC4部分视图

我有一个ASP.NET MVC 4视图,它<div>通过JQuery AJAX调用动态地将两个嵌套的部分加载到元素中.每个部分都有一大堆自己的Javascript.为了让它全部正常工作,我目前拥有success每个AJAX调用中的所有Javascript :

function LoadPartial(someImportantId) {
    $.ajax({
        url: '@Url.Action("LoadThePartial")' + '?id=' + someImportantId,
        type: 'POST',
        async: false,
        success: function (result) {
            $("#partialContainerDiv").html(result);
            //here there be great piles of javascript
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

由于这些部分中有两个,每个需要数百行Javascript,因此主视图文件变得难以管理.我很乐意把所有这些脚本代码放到一个单独的.js文件中,但我仍然对Javascript很新,我非常依赖Chrome的脚本调试工具,而且我很难搞清楚如何(以及如果)我可以加载此脚本文件.我试过了:

调试器中没有脚本

  • 添加脚本包括主视图.这不起作用.部分的Javascript都没有正确附加,这在同步级别上是有意义的.

东西不起作用

有没有办法我可以为AJAX加载的部分单独的Javascript文件,仍然能够调试客户端上的部分?更重要的是,我在哪里将所有这些Javascript用于AJAX加载的部分视图?

javascript debugging jquery partial-views asp.net-mvc-4

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

如何使用 max 从 Knex 查询中获取值?

我对 MySQL 表有一个非常简单的 Knex 查询来查找列的最大值id

const maxId = await knex('some_table').max('id').first()
Run Code Online (Sandbox Code Playgroud)

但这会返回一个TextRow具有单个、名称奇怪的属性的对象。来自console.log

TextRow { 'max(`id`)': 99 }
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以让我获取该值,或者我是否必须使用像这样的对象属性表示法:

const idValue = maxId['max(`id`)']
Run Code Online (Sandbox Code Playgroud)

mysql knex.js

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

如何完全停止 pm2 托管应用程序?

假设我有一个 pm2 进程,每 5 分钟运行一次,运行时间不到一秒:

pm2 start ./some-node-script.js --name some-node-script --cron "*/5 * * * *" --no-autorestart
Run Code Online (Sandbox Code Playgroud)

现在假设我想完全停止作业的执行。如果我发出pm2 stop some-node-script,我会收到此警告:

[PM2][WARN] App some-node-script stopped but CRON RESTART is still UP */5 * * * *
Run Code Online (Sandbox Code Playgroud)

然后该作业将在接下来的 5 分钟间隔内再次执行。有什么办法可以阻止 cron 作业再次执行吗?我已经尝试过pm2 kill,但这会杀死 pm2 管理的所有工作。

pm2

6
推荐指数
2
解决办法
9551
查看次数

0 ... 1协会的实体框架基数问题

我有这样的数据库表:

架构图

A Task可以映射到a Module,或者根本不映射(0 ... 1).我首先使用Entity Framework数据库,当我从数据库生成模型时,Task实体将Modules作为集合(0或更多)来实现.所以我打开了我的EDMX并将Task上的"Modules"导航属性更改为0 ... 1.

EDMX

现在,当我尝试编译时,我收到此错误:

错误3003:从第1241行开始映射片段时出现问题:给定关联结束成员任务的基数,它应该映射到表TaskModule的键列.修复映射或更改此末尾的多重性.

我不明白我需要做些什么来解决这个问题.我查看了关联细节,看不出问题.我知道我可能错过了一些愚蠢的东西,但我完全陷入困境.协会财产:

TaskModule关联

Visual Studio 2010 SP1,实体框架4.3.1.0,SQL Server 2008 R2.

entity-framework cardinality model-associations entity-framework-4.3

5
推荐指数
1
解决办法
1513
查看次数

即使使用AllowAnonymous,SimpleMembership密码重置超链接401也会重定向

我正在尝试将我的MVC4应用程序从ASP.NET成员资格迁移到新的SimpleMembership,并且遇到了密码重置问题.在我的登录视图中,我有"忘记密码"超链接,该超链接对发送带有重置密码超链接的电子邮件的操作执行AJAX帖子(基于MSDN指南):

[HttpPost]
[AllowAnonymous]
public ActionResult ForgotPassword(string userName)
{
    //get the user from database, validate it exists, etc.
    var token = WebSecurity.GeneratePasswordResetToken(userName);
    var resetLink = "<a href='" + Url.Action("ResetPassword", "Account", new {un = userName, rt = token}, "http") + "'>Reset Password</a>";
    //send the email
    return Json(new {result = "Email sent."});
}
Run Code Online (Sandbox Code Playgroud)

这很好,但出于某种原因,当我尝试使用重置密码链接时,我被重定向到登录屏幕,Fiddler显示401-Unauthorized.我已经尝试将链接复制/粘贴到浏览器地址栏中,并创建一个带有锚标记的垃圾HTML文件,但结果仍然是401.这是重置密码操作(也在来自的帐户控制器中) MVC4模板):

[HttpPost]
[AllowAnonymous]
public ActionResult ResetPassword(string un, string rt)
{
    var model = new ResetPasswordViewModel {UserName = un, ResetToken = rt};
    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试删除该HttpPost属性,但这也产生了401.我在这里缺少什么? …

asp.net-mvc asp.net-mvc-areas asp.net-mvc-4 simplemembership

5
推荐指数
1
解决办法
2126
查看次数

npm install 从 package-lock.json 中的几个包中删除了 "dev": true?

今天我从共享的 Git 存储库中提取了最新版本,并注意到我团队中的另一个开发人员添加了一个 NPM 包。所以我跑了npm install,然后看到我的package-lock.json文件已经改变了。当我深入研究更改的内容时,我发现"dev": true已从几个包描述中删除,例如:

"some-package": {
  "version": "1.0.0",
  "resolved": "https://registry.npmjs.org/whatever/-/some-package-1.0.0.tgz",
  "integrity": "some-big-hash",
  "dev": true
},
Run Code Online (Sandbox Code Playgroud)

"dev": true是走了之后npm install,从几个包。我应该担心 NPM 这样做了吗?我不希望为生产安装这些软件包。

这个问题"dev": true有点相关,但还没有一个好的答案,我仍然想知道我是否做错了什么。为什么 NPM 要删除它?

npm npm-install package-lock.json

5
推荐指数
1
解决办法
1650
查看次数