我正在用 C# 在 OpenXML 中构建一个 Word 文档。
我必须使用的字体之一是定制的品牌字体。该字体在客户机器上不可用。
是否可以在.docx文件中嵌入字体文件并在字体样式中引用该字体。如果是,这如何在 C# SDK 中完成?
到目前为止,这似乎是不可能的,但我可能错过了某个地方的文档页面。
ps 我已经有了带有嵌入字体的 PDF。现在我需要相同的 Word 文档。
我正在使用HTML5和jQuery mobile进行移动Web应用程序. HTML5 Mobile Boilerplate建议:
<body>
<div id="container">
<header>
</header>
<div id="main" role="main">
</div>
<footer>
</footer>
</div> <!--! end of #container -->
</body>
Run Code Online (Sandbox Code Playgroud)
在jQuery Mobile的(见"将其组合在一起:基本单一的页面模板") ,建议
<body>
<div data-role="page">
<div data-role="header"></div>
<div data-role="content"></div>
<div data-role="footer"></div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
哪种方式更可取?<header>和之间有什么区别data-role="header"?
我确实尝试使用谷歌搜索,但到目前为止没有答案.
我有一个为ASP.Net MVC3应用程序创建只读用户的任务.即他们可以登录,查看所有数据,但无法更新任何数据.
我已经阅读了很多认证文章/框架,如下所示:在ASP.Net MVC中实现安全的ASP.NET MVC应用程序,Fluent安全配置或创建动作过滤器(以及其他一些,我已经丢失了链接) .
大多数方法的问题是它们需要对域/应用程序进行重大更改.我只有一天时间来实现这个功能.
我们有大约一百个控制器,每个控制器平均有4个动作(主要是CRUD操作),并且通过它们中的每一个都是不可能的.此外,很容易忘记在新代码上添加属性 - 引入错误.
到目前为止,我已经提出了全局过滤器,它拒绝所有基于POST的操作和称为"创建"的控制器操作为只读用户:
public class ReadOnlyFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext filterContext)
{
var currentUser = HttpContext.Current.User;
if (currentUser == null || !currentUser.Identity.IsAuthenticated)
return; // user is not logged in yet
if (!currentUser.IsInRole("Readonly"))
return; // user is not read-only. Nothing to see here, move on!
// Presume User is read-only from now on.
// if action is of type post - deny …Run Code Online (Sandbox Code Playgroud) 我们有许多通用命令处理程序,由Autofac以开放式通用方式注册.我们有几个装饰器来装饰所有手柄.现在我需要为一个命令处理程序注册一个装饰器,而不是影响所有其他命令处理程序.这是我的尝试,但我似乎没有正确注册.
这是与我们的代码类似的简单测试代码:
我们有数百个命令如下:
class NormalCommand : ICommand { }
// This command handler should not be decorated
class NormalCommandHandler : ICommandHandler<NormalCommand>
{
public void Handle(NormalCommand command) { }
}
Run Code Online (Sandbox Code Playgroud)
而且我想TestCommandHandler在装饰器中包装TestCommandHandlerDecorator
class TestCommand : ICommand { }
// And I would like to put decorator around this handler
class TestCommandHandler : ICommandHandler<TestCommand>
{
public void Handle(TestCommand command) { }
}
// This decorator should be wrapped only around TestCommandHandler
class TestCommandHandlerDecorator : ICommandHandler<TestCommand>
{
private readonly ICommandHandler<TestCommand> decorated; …Run Code Online (Sandbox Code Playgroud) 我正在尝试从本地TFS迁移到Visual Studio Online.我们有相当精细的TeamCity构建过程,我们不想迁移,因此让TeamCity与VSO合作将是理想的.
我已经创建了替代用户凭据(根据本文)并在TeamCity中使用这些凭据.但是当我在TeamCity中创建新的VCS时,我收到连接错误:
TF30063: You are not authorized to access https://myproject.visualstudio.com/DefaultCollection/MyProject
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我的实际凭证(不是替代的凭证)但没有改变 - 同样的错误.
此外,我尝试使用tf命令行工具的替代凭据,无法输入替代凭据 - 弹出一个窗口,询问我的LiveId.
知道如何解决这个问题吗?
ps这是TeamCity配置的样子:

我正在尝试在现有应用程序中实现Asp.Net Identity 2.0(OWIN),并且在角色方面遇到各种各样的麻烦.我从项目模板创建了一个示例项目(据我所知)我已经将所有内容复制到我的应用程序中.我修改了连接信息,因此身份验证表来自我自己的Sql数据库,而不是默认的本地数据库.
一切似乎都很好.这些表在启动时初始化(创建),我可以创建新用户,为该用户分配角色,并以该用户身份登录.但是当我尝试检查用户是否处于特定角色时,我得到一个异常,表明找到本地数据库时出现问题.好吧那是因为我没有使用本地数据库.那么为什么我的应用程序会在(不存在的)本地数据库中寻找角色?
为了排除我的Sql实例中的怪异,我更改了示例应用程序的连接数据,以便它指向我的数据库并运行它.我可以使用我在应用程序中创建的用户登录,甚至可以成功地轮询用户以查询相关角色.我通过直接检查表确认了这一点,并验证了用户,角色和用户角色关联都在那里.
这是我注意到的.当我运行示例应用程序时,用户是一个实例System.Security.Claims.ClaimsPrincipal.但是,当我运行我的应用程序时,用户是一个实例System.Web.Security.RolePrincipal.
那么,我错过了什么?为什么我的应用程序返回RolePrincipal而不是ClaimsPrincipal?我在哪里可以找到线索?
我正在把头发拉出来,我没有多少离开!任何帮助将不胜感激.
我有一个项目,它有一个基于asp.net mvc的门户,使用Asp.net Identity API管理用户身份验证/授权.
该项目还包括一个Windows服务/ EXE,它将轮询MSMSQ队列以获取新用户信息,并将它们保存到Asp.net身份数据库(由上面提到的Web项目使用)中.
所以我的问题是 - " 我们也可以在桌面应用程序中使用Asp.net Identity API吗? ".这个要求只会出现,因为必须创建用户的密码哈希,并且我使用的是.net框架提供的默认密码.因此,如果我在Asp.net身份数据库中创建新用户,那么我也需要在那里创建密码哈希.
有什么想法吗?
我正在 TeamCity 中构建 nuget,并希望在签入触发构建时将后缀“-pre”附加到版本号。当构建被手动触发时,我希望能够提供一个复选框,如果这个构建应该是预览版本或值得生产的。
我有一个这样创建的配置参数:


在这种情况下,我总是-pre添加到版本号,即使我手动触发构建并且不选中复选框。
如果我-pre从参数的默认值中删除该值 ,则复选框提示会按预期工作。但是当我通过签入触发我的构建时,系统没有给我-pre后缀,我最终得到了一个只能手动创建的生产版本。
有什么方法可以实现我需要的吗?
或者,我只想在构建的手动触发器上发布 nuget,并不真正关心预发布,但我似乎找不到任何方法来检查构建是手动触发还是通过签入触发.
我有一个MVC应用程序需要访问Azure中受Azure AD身份验证保护的私有API应用程序.因此,我需要获取Azure AD不记名令牌,将其转移到Zumo-Auth令牌中并使用它来访问API应用程序.
我正在阅读本教程,一切正常,直到我需要请求令牌authContext.这是代码的片段:
var authContext = new AuthenticationContext(
"https://login.microsoftonline.com/MyADDomain.onmicrosoft.com");
ClientCredential credential = new ClientCredential(
"04472E33-2638-FAKE-GUID-F826AF4928DB",
"OMYAPIKEY1x3BLAHEMMEHEHEHEHEeYSOMETHINGRc=");
// Get the AAD token.
var appIdUri =
"https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad";
//var appIdUri = "https://MyADDomain.onmicrosoft.com/MyAppName";
//var appIdUri = "https://MyADDomain.onmicrosoft.com/";
//var appIdUri = "https://graph.windows.net";
AuthenticationResult result =
authContext.AcquireToken(appIdUri, credential); // <-- can't get the token from AD
// downhill from here
var aadToken = new JObject();
aadToken["access_token"] = result.AccessToken;
var appServiceClient = new AppServiceClient(
"https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/");
// Send the AAD token …Run Code Online (Sandbox Code Playgroud) c# azure azure-active-directory azure-api-apps azure-ad-graph-api
我有一个Web门户,供员工更新他们的详细信息.人们使用他们的Active Directory凭据登录,我设置OWIN cookie进行身份验证.这一切都是通过MVC登录页面完成的,与IIS上的Windows身份验证无关.
现在公司浏览器是Internet Explorer,并配置为自动登录到其他Windows身份验证站点,而不提示输入密码.当人们使用公司PC并登录他们的域帐户时,就会发生这种情况.如果他们在家工作,则基本身份验证提示会要求在这些系统上提供凭据.
现在,我希望在用户登录到他们的Windows域帐户,从工作PC登录时实现自动身份验证,如果他们在家工作,则会显示登录页面.
我知道401挑战和身份验证协商,但从未通过ASP.Net启动.我见过用户被重定向到IIS配置为Windows身份验证的页面的解决方案,但我希望在没有IIS配置的情况下完成此操作.此外,我记得有人提到了一个解决方案,其中加载了一个页面<iframe>,其中检查了基本身份验证,如果通过该身份验证成功,则将已经过身份验证的用户重定向到登录页面.
所以我的问题归结为:是否有办法在控制器的特定操作上启动(并完成)401基本身份验证挑战?然后挂钩到Controller.User.Identity属性来设置OWIN cookie?
UPD: 根据评论:我希望Kerberos(Windows身份验证)在用户位于域网络时工作,因此他们会自动登录.但是,当用户不在域网络上时,我不希望进行Windows身份验证,而是希望自定义登录页面包含密码重置和注册选项(给定员工验证).
c# ×4
owin ×2
architecture ×1
asp.net ×1
autofac ×1
azure ×1
azure-devops ×1
decorator ×1
filter ×1
fonts ×1
html5 ×1
openxml-sdk ×1
readonly ×1
teamcity ×1
teamcity-8.0 ×1
teamcity-9.0 ×1
tfs ×1
tfvc ×1