我有一个ASP.NET MVC3应用程序与Windows身份验证部署到IIS6.当经过身份验证的用户单击他们无权查看的链接时,系统会提示他们按预期输入用户名和密码(在浏览器对话框中,而不是页面中).
但是,单击取消或输入三次无效凭据后,我看到一个空白页面,而不是看到401 Unauthorized页面.
查看Fiddler,点击取消后有三个请求/响应.以下是响应摘要和标题:
ASP.NET Access被拒绝消息(401.2)
HTTP/1.1 401未授权日期:星期五,2012年7月20日14:34:21 GMT服务器:Microsoft-IIS/6.0 WWW-身份验证:协商WWW-Authenticate:NTLM X-Powered-By:ASP.NET X-AspNet-版本: 4.0.30319 Cache-Control:private Content-Type:text/html; charset = utf-8内容长度:1701代理支持:基于会话的身份验证
IIS您无权查看此页面(401.1)
HTTP/1.1 401未经授权的内容长度:1539内容类型:text/html服务器:Microsoft-IIS/6.0 WWW-Authenticate:NTLM TlRMTVNTUAACAAAADAAMADgAAAAF ...(为简洁起见省略)X-Powered-By:ASP.NET日期:星期五,2012年7月20日14:34:21 GMT代理支持:基于会话的身份验证
空响应
HTTP/1.1 401未授权日期:星期五,2012年7月20日14:34:21 GMT服务器:Microsoft-IIS/6.0 WWW-身份验证:协商WWW-Authenticate:NTLM X-Powered-By:ASP.NET X-AspNet-版本: 4.0.30319 X-AspNetMvc-Version:3.0 Cache-Control:private Content-Length:0代理支持:基于会话的身份验证
如何让它显示401错误页面?
更新1:
这是我的web.config错误部分.
<customErrors mode="RemoteOnly" defaultRedirect="~/Error" />
Run Code Online (Sandbox Code Playgroud)
我也在用HandleErrorAttribute.
我怀疑IIS正在返回空白页而不是ASP.NET,但我不确定如何证明这一点.
更新2:
这是有趣的.如果我刷新空白页面,我看到ASP.NET Access被拒绝消息.
我在Subversion中有一个相当大的Visual Studio 2008解决方案.它几个月前从Visual SourceSafe迁移过来.我开始发现当我使用VSS时,仍有许多源代码控制文件已从解决方案中删除.它们在签出后可能已重命名或删除 - VSS不喜欢这样.
我正在寻找一种简单的方法来查找解决方案中但不在Subversion中的所有文件.像WinMerge的文件夹比较之类的东西是理想的,其中一方是Subversion工作副本,另一方是项目内容.
有没有人尝试过从ScrewTurn迁移到Confluence?我希望我可以将ScrewTurn数据库导出到xml,然后使用实用程序将其置于Confluence可以理解的格式 - 也许是Universal Wiki Converter使用的格式.
有人用过这样的实用工具吗?在我尝试自己写一个之前,有什么我应该知道的吗?
更新:我已经安装了Confluence试用版,我看了一下备份.有一个entities.xml看起来像数据存储的文件.root标签是<hibernate-generic>让我相信他们使用Hibernate的.我不熟悉Hibernate,但这应该是有用的.
我的团队使用TeamCity进行持续集成.它将通过Web Deploy构建,测试和部署Web应用程序到dev和qa Web服务器.棘手的部分是部署到生产Web服务器 - 我们的策略规定开发人员不能部署到生产,只有系统管理员才能.
我们当前的方法是让TeamCity构建一个Web部署包,管理员可以在生产Web服务器上下载和安装该包.但是,我们希望他们只需在构建配置上单击"运行",但我们不确定如何保护该按钮.
我们可以创建一个只有管理员才能访问的TeamCity项目,但我们还必须解决Web Deploy的安全问题.Web Deploy服务需要使用生产服务器上的本地管理员帐户进行身份验证.我们不希望开发人员在构建脚本中访问用户名/密码,也不希望每个构建代理都作为此帐户运行,因为开发人员可以创建使用它来部署到生产的构建.
我没有太多运气找到TeamCity安全/部署最佳实践的资源,但我无法想象我们是这种情况下唯一的公司.其他人如何管理自动部署安全性?
我知道ASP.NET WEB API是为了帮助实现基于REST的轻量级应用程序而构建的.但是,我需要我的REST服务是事务性/成为事务的一部分.我试着四处寻找,但看起来没有办法将WEB API作为客户启动的事务的一部分.有没有办法做到这一点?
关于Jagadish
的DbContext
public class HaberPortalDB : DbContext
{
public DbSet<Haberler> Haberler { get; set; }
public DbSet<Kategoriler> Kategoriler { get; set; }
public DbSet<Yazarlar> Yazarlar { get; set; }
}
public class Haberler
{
public virtual int Id { get; set; }
public virtual string Baslik { get; set; }
public virtual string Aciklama { get; set; }
public virtual string Icerik { get; set; }
public virtual int YazarId { get; set; }
public virtual Yazarlar Yazar { get; set; …Run Code Online (Sandbox Code Playgroud) 我有一个存储过程,我希望它在每个中间运行,但我的数据库是在aZure
如何使用sql代理安排任务?
我目前正在使用 asp .net core 学习 vuejs。我正在做一些表单验证并添加一些错误消息。
错误消息来自服务器端,这里是我的示例代码:
[HttpPost]
public async Task<IActionResult> AddUser([FromBody] UserModel user)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (_context.Users.Any(u => u.UserName == user.UserName))
{
ModelState.AddModelError("UserName", "Username is already in used");
return BadRequest(ModelState);
}
try
{
var userDto = new User
{
FirstName = user.FirstName,
LastName = user.LastName,
Password = user.Password,
UserName = user.UserName
};
_context.Users.Add(userDto);
await _context.SaveChangesAsync();
}
catch(Exception e)
{
ModelState.AddModelError("Saving Error", string.Format("Error in saving user. \nDetails:\n {0}", e.Message));
return BadRequest(ModelState);
}
return Ok();
} …Run Code Online (Sandbox Code Playgroud) 我已经按照这个答案来模拟 HttpContext、Request、Response 和 User 并设置Controller.ControllerContextand Controller.Url。
Controller.Url在调用之前绝对不为空controller.Index()。然而,在内部controller.Index(),它是空的。看起来很奇怪。我缺少什么?
这是我的测试装置:
[TestFixture]
public class ControllerFixtureBase
{
private Mock<HttpContextBase> _httpContextMock;
private RouteCollection _routes;
[SetUp]
public void SetUp()
{
var requestMock = new Mock<HttpRequestBase>();
requestMock.SetupGet(x => x.ApplicationPath)
.Returns("/");
requestMock.SetupGet(x => x.Url)
.Returns(new Uri("http://localhost/a", UriKind.Absolute));
requestMock.SetupGet(x => x.ServerVariables)
.Returns(new NameValueCollection());
var responseMock = new Mock<HttpResponseBase>();
responseMock.Setup(x => x.ApplyAppPathModifier(It.IsAny<string>()))
.Returns((string url) => url);
var principalMock = new Mock<IPrincipal>();
principalMock.SetupGet(p => p.Identity)
.Returns(new GenericIdentity("testuser"));
principalMock.Setup(p => p.IsInRole(ApplicationRoles.DataAdmin))
.Returns(false); …Run Code Online (Sandbox Code Playgroud) .net ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
azure ×1
c# ×1
confluence ×1
deployment ×1
idisposable ×1
iis ×1
iis-6 ×1
migration ×1
moq ×1
nunit ×1
screwturn ×1
security ×1
teamcity ×1
transactions ×1
validation ×1
vue.js ×1
vuejs2 ×1
wiki ×1