我有一个方法具有以下重载:
string Call(string function, Dictionary<string, object> parameters, object body)
string Call(string function, Dictionary<string, object> parameters, JObject body)
Run Code Online (Sandbox Code Playgroud)
现在我添加了另一个重载:
string Call(string function)
{
return Call(function, null, (JObject) null);
}
Run Code Online (Sandbox Code Playgroud)
我添加了一个强制转换,JObject因此编译器知道它应该使用哪个重载.但Visual Studio告诉我演员阵容是多余的.但是如果没有演员,为什么我的电话不明确?
我有一个像这样的属性的接口:
public interface IFoo {
// ...
[JsonIgnore]
string SecretProperty { get; }
// ...
}
Run Code Online (Sandbox Code Playgroud)
我希望SecretProperty在序列化所有实现类时忽略它.但似乎我必须在JsonIgnore属性的每个实现上定义属性.有没有办法实现这一点,而无需将JsonIgnore属性添加到每个实现?我没有找到任何帮助我的序列化设置.
我有这样的json
{
"name": "somenameofevent",
"type": "event",
"data": {
"object": {
"age": "18",
"petName": "18"
},
"desct": {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有2个像这样的对象
public class CustEvent
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("type")]
public string EventType{ get; set; }
[JsonProperty("data")]
public SomeData Data{ get; set; }
}
public class SomeData
{
[JsonProperty("object")]
public String SomeObject { get; set;}
[JsonProperty("dsct")]
public String SomeDesct { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我用来解析json对象Newtonsoft.NET库.以及如何将RAW JSON转换为SomeObject,SomeDesct属性?在JSON中,"data.object ..."是复杂的对象,我想只获得RAW JSON String到这些属性.你能帮助我吗 ?
在我的Web应用程序中,我有一个如下所示的路由:
routeCollection.MapRoute(
"AdfsMetadata", // name
"FederationMetadata/2007-06/FederationMetadata.xml", // url
new { controller = "AdfsController", action = "MetaData" }); // defaults
Run Code Online (Sandbox Code Playgroud)
这条路线背后的想法是与Microsoft AD FS服务器(2.0+)更好地协作,当您指定主机名时,此时会查找AD FS元数据.MVC3一切正常.但我们最近将项目升级到MVC4,现在调用此URL会产生404,错误页面上提到的处理程序是StaticFile物理路径D:\path\to\my\project\FederationMetadata\2007-06\FederationMetadata.xml.我假设MVC或ASP.NET"认为"它必须是对静态文件的请求并查找该文件,但它不是文件.数据是动态生成的 - 这就是我将URL路由到控制器操作的原因.问题是即使Phil Haack的Route Debugger也行不通.除了IIS试图访问不存在的物理文件之外,它只是404而没有进一步的信息.
有人有解决方案吗?我只想将此URL路由到控制器操作.
PS:我不是100%确定原因是升级到MVC4,这只是猜测,因为错误发生在升级的大致同一时间,并且相同的路由在另一个仍在使用MVC3的项目中工作.
编辑:
我有一个ControllerFactory需要完整类名的自定义(AdfsController而不是Adfs),所以Controller在这种情况下后缀是正确的.
我不确定我是否遗漏了某些东西 - 或IE或Json.Net.
但基本上这是有效的:
new Date("2012-08-03T12:36:54.743Z")
此操作因"无效日期"错误而失败:
new Date("2012-08-03T12:36:54.74Z")
第二个日期存储在SQL Server中:
2012-08-03 12:36:54.740
然后使用Json.Net将其序列化为JSON.Json.Net确实将日期序列化为2012-08-03T12:36:54.74Z,有效地切断了最后的0.
我的问题:
我正在尝试将部署的WordPress多站点移动到本地环境.我备份了服务器数据库和文件.在我的本地环境中,我创建了一个新数据库并导入了备份.我还将服务器文件复制到本地计算机.
我做了这些步骤:
我改的wp-config.php文件,并与新的更新它db-name,db-username,db-password并设置define('DOMAIN_CURRENT_SITE', 'www.mysitename.com');到define('DOMAIN_CURRENT_SITE', 'localhost/mysitename');.
我option_value在wp-option数据库表中更改为指向我的本地地址.
我还从.htaccess中删除了这些行:
# Redirect non-www urls to www
RewriteCond %{HTTP_HOST} !^www\.mysitename\.com
RewriteRule (.*) http://www.mysitename.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)但是当我转到127.0.0.1/mysitename时,我收到此错误:此网页有一个重定向循环.
当我换define('DOMAIN_CURRENT_SITE', 'localhost/mysitename');到define('DOMAIN_CURRENT_SITE', 'localhost');并转到127.0.0.1/mysitename地址时,它会显示phpinfo()页面.
我该如何解决我的问题?
请解释我是否必须在.htaccess和wp-config.php文件中设置一些内容.
非常感谢.
是否可以定义一个默认数字格式,每当我将integer(或double等)转换为a String而不指定格式字符串时使用该格式?
C#示例:
int i = 123456;
string s = "Hello " + i;
// or alternatively with string.Format without format definition
string s = string.Format("Hello {0}", i);
Run Code Online (Sandbox Code Playgroud)
ASP.NET Razor示例:
<div>
Hello @i
</div>
Run Code Online (Sandbox Code Playgroud)
我认为所有这些代码行都隐式使用默认ToString()方法Int32.毫不奇怪,所有这些代码行都会产生"Hello 123456",但我想要"Hello 123,456".
那么我可以指定"N0"默认情况下应该使用它(至少是integer)吗?
我已经找到了问题Set Default DateTime Format c# - 它看起来不错,但它对数字没有帮助.
编辑:我知道我可以编写一个扩展方法,我可以在整个应用程序中使用,但这不是我正在寻找的.我想找到一个属性(也许某处隐藏在CultureInfo或NumberFormatInfo这是目前设定为)"G",并使用默认的Int32.ToString()实现.
我正在使用Azure Active Directory身份验证构建MVC应用程序.当我在本地开发时,我希望能够登录进行测试/开发.应用程序网址就像http://localhost:43400.这也被编码在AD应用Sign-On Url和Reply Url.
当我将相同的应用程序部署到服务器时,应用程序URL已更改 - 变得类似myappname.azurewebsites.net,我无法使用相同的AD应用程序登录.我能管理的最好的办法就是通过登录过程,然后AD将我重定向回到localhost:43400错误状态.
有一些PostLogoutRedirectUri属性Startup.Auth.cs,我给应用程序,但它没有任何区别.
有没有使用相同Azure AD的本地应用程序和已部署应用程序的方法?
我可以使用不同的URL和密钥执行2个AD Applica,并web.config在部署中重写值.但这听起来不是最好的解决方案.还有什么我能做的吗?
UPD
这是我所指的位Startup.Auth.cs:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = Authority,
PostLogoutRedirectUri = postLogoutRedirectUri, // <-- this is coming from web.config, different in dev and prod
Notifications = new OpenIdConnectAuthenticationNotifications()
{
.....
}
});
Run Code Online (Sandbox Code Playgroud)
请在此处查看完整代码.
在Azure AD应用程序中,我同时尝试将这两个地址作为回复URL:

但AD只使用其中一个地址进行重定向,即使客户端指定了与其中一个记录匹配的重定向.
这种感觉就像我找遍了整个网络了,但所有我发现是关于如何提示接受无效或自签名证书自动.(使用自定义HttpClient和SSLSocketFactory- 我已经有了工作.)
但我想要的是我的应用程序是用户获得类似浏览器的对话框,询问"你真的想要信任这台服务器吗?在这里,看看它的证书." (但仅当默认检查不信任证书时.)
然后证书应该放在应用程序的证书存储区中,以便下次自动接受.
所以我需要知道的是:
KeyStore?这是我在应用程序中计划的工作流程:
HttpClient.也许证书是系统信任的,或者已经存储在我的商店中(如果是,请转到4).所以谁知道怎么做?
我目前正致力于为Windows Azure托管服务的自动部署过程.使用调用来完美地创建.cspkg和.cscfg文件msbuild.现在我正在编写一个小型.NET控制台应用程序,它应该使用Management REST API将这些文件部署到Azure.
关于API本身没有问题.我可以使用我的一个管理证书向API发送请求.我将.cspkg文件上传到Azure BLOB存储,然后尝试调用Upgrade Deployment.但每次我尝试时,都会收到一条"400 Bad Request"回复,指出没有找到带有指纹xy的证书.此证书是我用于自定义域(DNS CNAME)的HTTPS 的SSL证书(不是管理证书).
而现在,整个事情变得有趣:
当我在Visual Studio中使用"发布"命令部署文件时,没有问题.(我比较了VS和我的输出中的.cscfg/ .cspkgfiles msbuild:除了几个GUID之外,它们是相同的).此外,在我的浏览器中使用Silverlight Management thingy,我甚至可以上传我使用API无法上传的生成文件.
当我使用该List Certificates调用检索所有证书的列表时,显然缺少证书.我也可以使用该Get Certificate调用检索其数据.
那么为什么Azure一直告诉我在使用Upgrade Deployment呼叫时没有找到证书?有人经历过类似的事吗?有没有人在对我暗示?提前致谢.
PS:这就是Azure在我使用API时所说的:
<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Code>BadRequest</Code>
<Message>The certitficate with thumbprint 7b232c4a2d6e3deadbeef120d5dbc1fe8049fbea was not found.</Message>
</Error>
Run Code Online (Sandbox Code Playgroud)
PPS:是的,答复中的单词certitficate不是certificate.
我有一个名为ShowDocument.cshtml的视图.
我想在视图中显示pdf文档.首先,我将html页面转换为.pdf,其中包含以下信息:
控制器中的代码是:
Stream stream = HtmlToPdfBuilder.GetHtmlForm(model.Type, 16);
Run Code Online (Sandbox Code Playgroud)
如果我返回File(stream, "application/pdf", "Authorization.pdf"),我将保存,保存为对话框.
我不想要这个对话框,我只想在页面内显示pdf内容.
那么MVC中是否有任何pdf查看器,以便我只能使用某些控件在View中显示内容
我知道这IDataReader是界面,DataReader是具体的类型,但我仍然不知道何时使用每一个.我需要迭代使用Datareader和两者可能的数据IDataReader.有没有更好的方法来决定何时使用界面或具体类型?
我有一个ASP.NET MVC 3应用程序,它使用PowerShell连接到Office 365以检索有关用户许可证的一些详细信息.
代码本身在很多情况下都适用:
它不起作用的地方当然是它真正应该工作的唯一地方:目标服务器上的IIS.
调用Connect-MsolServicecmdlet 时,我总是遇到异常.问题是异常并没有告诉我任何事情.
异常类型是
Microsoft.Online.Administration.Automation.MicrosoftOnlineException
并且消息是
抛出了"Microsoft.Online.Administration.Automation.MicrosoftOnlineException"类型的异常
这是没用的.
我在代码中使用的Office 365用户帐户始终相同.用于启动IIS的用户帐户也始终相同(本地系统).
我将PowerShell代码执行包装在一个名为的类中PowerShellInvoker.它的代码可以在这里找到.
这是连接到Office 365的代码:
var cred = new PSCredential(upn, password);
_psi = new PowerShellInvoker("MSOnline");
_psi.ExecuteCommand("Connect-MsolService", new { Credential = cred });
Run Code Online (Sandbox Code Playgroud)
实际上没有抛出 Exception ,错误发现在Error管道的属性中.(见本PowerShellInvoker课程第50ff行.)
问题是我不知道什么是错的,特别是因为当我使用LINQPad时相同的代码工作.谷歌的搜索结果也无济于事.
服务器在带有IIS 7.5的Windows Server 2008 R2 Datacenter SP1上运行.
c# ×6
.net ×4
json.net ×3
asp.net-mvc ×2
azure ×2
.htaccess ×1
android ×1
api ×1
asp.net ×1
casting ×1
cultureinfo ×1
datetime ×1
iis ×1
javascript ×1
json ×1
oauth ×1
office365 ×1
overloading ×1
pdf-viewer ×1
php ×1
powershell ×1
rest ×1
ssl ×1
wordpress ×1