我在Windows上使用git bash:
$ git version
git version 1.8.0.msysgit.0
Run Code Online (Sandbox Code Playgroud)
几个月来一切都运行良好,我已经逐渐习惯了git是如何工作的,然后突然间,git pull正在检索每次我尝试拉动时的一些"新"分支:
me@MYPC /d/Projects/MyProject (master)
$ git pull
From github.com:ClientUsername/RepoName
* [new branch] branch1 -> origin/branch1
* [new branch] branch2 -> origin/branch2
Already up-to-date.
me@MYPC /d/Projects/MyProject (master)
$ git pull
From github.com:ClientUsername/RepoName
* [new branch] branch1 -> origin/branch1
* [new branch] branch2 -> origin/branch2
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
我配置错误了吗?这是正常的行为吗?
编辑
在一些有用的评论之后,我从.git\refs\remotes\origin中删除了分支文件.我试图再拉一次,得到以下内容:
me@MyPC /d/Projects/MyProject (master)
$ git pull
From github.com:ClientUsername/RepoName
* [new branch] Branch1 -> origin/Branch1
* [new branch] Branch2 -> origin/Branch2
* [new branch] …Run Code Online (Sandbox Code Playgroud) 我使用的是Chrome版本31.0.1650.63 m.
最近,我注意到Chrome开发者控制台中出现了一些错误,但我的网站似乎没有任何问题.经过调查,它们似乎与嵌入式YouTube链接有关.有问题的标记如下:
<iframe width="560" height="315" src="http://www.youtube.com/embed/hhhrWFxWQRk" frameborder="0" allowfullscreen></iframe>
Run Code Online (Sandbox Code Playgroud)
视频本身是无关紧要的(我只是抓住了我在youtubes首页上看到的第一个作为测试),但是我已经包含了我在这里使用的链接,以防万一发生了非常具体的事情.
Chrome中请求的响应标头如下:
Alternate-Protocol:80:quic
Cache-Control:no-cache
Content-Encoding:gzip
Content-Length:2560
Content-Type:text/html; charset=utf-8
Date:Sun, 12 Jan 2014 20:35:54 GMT
Expires:Tue, 27 Apr 1971 19:44:06 EST
Server:gwiseguy/2.0
X-Content-Type-Options:nosniff
X-Frame-Options:ALLOWALL
X-XSS-Protection:1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
Run Code Online (Sandbox Code Playgroud)
我在Chrome开发者控制台中遇到的错误如下:
Invalid 'X-Frame-Options' header encountered when loading 'http://www.youtube.com/embed/hhhrWFxWQRk': 'sil' is not a recognized directive. The header will be ignored.
Error parsing header X-XSS-Protection: sil: expected 0 or 1 at character position 0. The default protections will be applied.
Run Code Online (Sandbox Code Playgroud)
在大红色字母.我注意到的第一件事是错误都引用了值"sil",我在HTTP请求的任何响应头中都没有看到.
视频显示并播放正常,错误表示将使用默认设置 - 因此这看起来不是问题.但是,我很想知道发生了什么,以及为什么会发生这些错误.
我注意到错误与XSS有关,根据我的研究,我认为X-XSS-Protection标题仅适用于IE8,而从YouTube返回的值无效(report …
我在MVC5站点中使用以下代码:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel loginModel) {
if (ModelState.IsValid) {
var authenticated = FormsAuthentication.Authenticate(loginModel.UserName, loginModel.Password);
if (authenticated) {
FormsAuthentication.SetAuthCookie(loginModel.UserName, true);
return RedirectToAction("AdminPanel");
}
ModelState.AddModelError("", "The username and password combination were incorrect");
}
return View(loginModel);
}
Run Code Online (Sandbox Code Playgroud)
这引发了以下警告:
System.Web.Security.FormsAuthentication.Authenticate(string,string)'已过时:'建议的替代方法是使用Membership API,例如Membership.ValidateUser.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=252463.
首先是免责声明 - 我是那些喜欢与事物保持同步的开发者之一,我更愿意完全避免VS中的警告.但是,在这个特定的实例中,我使用非常原始的身份验证,它直接来自web.config,如下所示:
<authentication mode="Forms">
<forms loginUrl="~/account/login" timeout="2880" slidingExpiration="true" name=".ASPXFORMSAUTH">
<credentials passwordFormat="SHA1">
<user name="MyUserName" password="a-big-long-password-hash"/>
</credentials>
</forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)
在这个项目中绝对没有进一步的登录要求 - 使用数据库是过度的,并且不需要分布式登录; 基本上,在web.config中存储细节是最理想的解决方案,每个应用程序可能只有一个用户.我无疑会从控制器(使用DI/IoC)中抽象出认证代码,但我仍然打算使用FormsAuthentication对象对web.config中的详细信息进行身份验证.
虽然我完全了解会员提供商,DotNetOpenAuth和新的(但非常可怕的)基于OWIN的身份验证模型,但上述代码绰绰有余.
第一个问题 - 为什么当这是一个完全有效的用例时,FormsAuthentication已经过时了?我知道FormsAuthentication是一个密封的黑盒子,难以测试,其背后的代码是特定于域的,但在这个特定的实例中(我想直接从web.config部分读取详细信息),似乎很疯狂编写会员提供者或自定义身份验证服务?
第二个问题 - 除非我遗漏了某些内容,否则新的OWIN模型用于分布式身份验证,不适用于基于角色的企业级安全系统.从我读过的很多博客文章,白皮书和SO帖子来看,它似乎仍然不完整.我的假设是对的吗?OWIN是所有安全系统的未来,还是应该继续编写更适合我客户需求的定制安全系统?
我正在做一些研究,我遇到了一个我无法解释的异常(我在Google上找不到任何东西).考虑以下SQL:
CREATE TABLE MyGuid (
ID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID()
)
GO
CREATE TABLE MyGuidSeq (
ID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWSEQUENTIALID()
)
GO
DECLARE @i INT, @noRecords INT
SET @noRecords = 1000000
-- MyGuid
SET @i = 1
WHILE (@i <= @noRecords)
BEGIN
INSERT INTO MyGuid DEFAULT VALUES
SET @i = @i + 1
END
-- MyGuidSeq
SET @i = 1
WHILE (@i <= @noRecords)
BEGIN
INSERT INTO MyGuidSeq DEFAULT VALUES
SET @i = @i + 1
END …Run Code Online (Sandbox Code Playgroud) 我的自定义 Dockerfile 遇到了一些奇怪的问题,在 alpine 容器中编译了一个 .Net 核心应用程序。
我尝试了许多不同的配置都无济于事 - 当我执行最后一条FROM指令时,缓存总是无效的(如果我注释掉它以及它下面的所有内容,缓存工作正常)。这是文件:
FROM microsoft/dotnet:2.1-sdk-alpine3.7 AS build
ARG ASPNETCORE_ENVIRONMENT=development
ARG ASPNET_CONFIGURATION=Debug
ARG PROJECT_DIR=src/API/
ARG PROJECT_NAME=MyAPI
ARG SOLUTION_NAME=MySolution
RUN export
WORKDIR /source
COPY ./*.sln ./nuget.config ./
# Copy source project files
COPY src/*/*.csproj ./
RUN for file in $(ls *.csproj); do mkdir -p src/${file%.*}/ && mv $file src/${file%.*}/; done
# # Copy test project files
COPY test/*/*.csproj ./
RUN for file in $(ls *.csproj); do mkdir -p test/${file%.*}/ && mv $file test/${file%.*}/; …Run Code Online (Sandbox Code Playgroud) 这是我的默认路线:
routes.MapRouteLowercase(
"Default",
"{country}/{controller}/{action}/{id}",
new {
country = "uk",
controller = "Home",
action = "Index",
id = UrlParameter.Optional
},
new[] { "Presentation.Controllers" }
);
Run Code Online (Sandbox Code Playgroud)
众所周知,当有人访问www.domain.com/时,MVC的路由将确定默认控制器和基于上述路由执行的操作,但URL将保持不变.对于使用默认值的每条路线,是否有内置或优雅的方式从www.domain.com/执行301重定向到www.domain.com/uk/{controller}/{action}/?